View difference between Paste ID: tbcwM1Vt and gPEMC0Aw
SHOW: | | - or go back to the newest paste.
1
using System;
2
using System.Linq;
3
using AboGamil.Game;
4
using System.Text;
5
using System.Collections.Generic;
6
using AboGamil.Network.GamePackets;
7
using AboGamil.Interfaces;
8
using MagicOnline;
9
10
namespace AboGamil.Database
11
{
12
    public unsafe class MonsterInformation
13
    {
14
        #region Definitions
15
        public Dictionary<uint, Client.GameState> boardscore = new Dictionary<uint, Client.GameState>(10000);
16
        public Dictionary<Game.Player, uint> Score = new Dictionary<Game.Player, uint>();
17
        public static SafeDictionary<uint, MonsterInformation> MonsterInformations = new SafeDictionary<uint, MonsterInformation>(8000);
18
        public Game.Player Owner;
19
        public Time32 Lastpop;
20
        public uint ExcludeFromSend = 0;
21
        private bool LabirinthDrop = false;
22
        public bool Guard, Reviver;
23
        public uint ID;
24
        public ushort Mesh;
25
        public byte Level;
26
        public uint Type;
27
        public string Name;
28
        public uint Hitpoints;
29
        public ushort Defence;
30
        public ushort ViewRange;
31
        public ushort AttackRange;
32
        public int RespawnTime;
33
        public uint MinAttack, MaxAttack;
34
        public byte AttackType;
35
        public ushort SpellID;
36
        public uint InSight;
37
        public bool Boss;
38
        public Time32 LastMove;
39
        public int MoveSpeed;
40
        public int RunSpeed;
41
        public int OwnItemID, OwnItemRate;
42
        public int HPPotionID, MPPotionID;
43
        public int AttackSpeed;
44
        public static byte NumAboGamil = 0;
45
        public int MinimumSpeed
46
        {
47
            get
48
            {
49
                int min = 10000000;
50
                if (min > MoveSpeed)
51
                    min = MoveSpeed;
52
                if (min > RunSpeed)
53
                    min = RunSpeed;
54
                if (min > AttackSpeed)
55
                    min = AttackSpeed;
56
                return min;
57
            }
58
        }
59
        public uint ExtraExperience;
60
        public uint MinMoneyDropAmount;
61
        public uint MaxMoneyDropAmount;
62
        public ushort BoundX, BoundY;
63
        public ushort BoundCX, BoundCY;
64
        public const int ReviverID = 9879;
65
        #endregion
66
        public static void Load()
67
        {
68
            using (var command = new MySqlCommand(MySqlCommandType.SELECT))
69
            {
70
                command.Select("monsterinfos");
71
                using (var reader = command.CreateReader())
72
                {
73
                    Console.Write("Loading Monster information...  ");
74
                    while (reader.Read())
75
                    {
76
                        Console.Write("\b{0}", Loading.NextChar());
77
                        MonsterInformation mf = new MonsterInformation();
78
                        mf.ID = reader.ReadUInt32("id");
79
                        mf.Name = reader.ReadString("name");
80
                        mf.Type = reader.ReadUInt32("type");
81
                        mf.Mesh = reader.ReadUInt16("lookface");
82
                        mf.Level = reader.ReadByte("level");
83
                        mf.Hitpoints = reader.ReadUInt32("life");
84
                        IniFile IniFile = new IniFile(Constants.MonstersPath);
85
                        if (IniFile.ReadString(mf.Name, "MaxLife") != "")
86
                        {
87
                            if (uint.Parse(IniFile.ReadString(mf.Name, "MaxLife")) != 0)
88
                            {
89
                                mf.Hitpoints = uint.Parse(IniFile.ReadString(mf.Name, "MaxLife"));
90
                                byte boss = byte.Parse(IniFile.ReadString(mf.Name, "Boss"));
91
                                if (boss == 0)
92
                                    mf.Boss = false;
93
                                else mf.Boss = true;
94
                            }
95
                        }
96
                        mf.Guard = mf.Name.Contains("Guard1");
97
                        mf.Reviver = mf.ID == ReviverID;
98
                        mf.ViewRange = reader.ReadUInt16("view_range");
99
                        mf.AttackRange = reader.ReadUInt16("attack_range");
100
                        mf.Defence = reader.ReadUInt16("defence");
101
                        mf.AttackType = reader.ReadByte("attack_user");
102
                        mf.MinAttack = reader.ReadUInt32("attack_min");
103
                        mf.MaxAttack = reader.ReadUInt32("attack_max");
104
                        mf.SpellID = reader.ReadUInt16("magic_type");
105
                        mf.MoveSpeed = reader.ReadInt32("move_speed");
106
                        mf.RunSpeed = reader.ReadInt32("run_speed");
107
                        mf.OwnItemID = reader.ReadInt32("ownitem");
108
                        mf.OwnItemRate = reader.ReadInt32("ownitemrate");
109
                        mf.AttackSpeed = reader.ReadInt32("attack_speed");
110
                        mf.ExtraExperience = reader.ReadUInt32("extra_exp");
111
                        uint MoneyDropAmount = reader.ReadUInt16("level");
112
                        if (MoneyDropAmount != 0)
113
                        {
114
                            mf.MaxMoneyDropAmount = MoneyDropAmount * 100;
115
                            if (mf.MaxMoneyDropAmount != 0)
116
                                mf.MinMoneyDropAmount = 1;
117
                        }
118
                        if (mf.MoveSpeed <= 500)
119
                            mf.MoveSpeed += 500;
120
                        if (mf.AttackSpeed <= 500)
121
                            mf.AttackSpeed += 500;
122
                        MonsterInformations.Add(mf.ID, mf);
123
                        byte lvl = mf.Level;
124
                        if (mf.Name == "Slinger" || mf.Name == "GoldGhost" ||
125
                            mf.Name == "GoldenOctopus" || mf.Name == "AgileRat" ||
126
                            mf.Name == "Bladeling" || mf.Name == "BlueBird" ||
127
                            mf.Name == "BlueFiend" || mf.Name == "MinotaurL120")
128
                        {
129
                            mf.LabirinthDrop = true;
130
                            lvl = 20;
131
                        }
132
                    }
133
                }
134
            }
135
            Console.WriteLine("Ok!");
136
        }
137
        public MonsterInformation Copy()
138
        {
139
            MonsterInformation mf = new MonsterInformation();
140
            mf.ID = this.ID;
141
            mf.Name = this.Name;
142
            mf.Mesh = this.Mesh;
143
            mf.Level = this.Level;
144
            mf.Hitpoints = this.Hitpoints;
145
            mf.ViewRange = this.ViewRange;
146
            mf.AttackRange = this.AttackRange;
147
            mf.AttackType = this.AttackType;
148
            mf.MinAttack = this.MinAttack;
149
            mf.MaxAttack = this.MaxAttack;
150
            mf.SpellID = this.SpellID;
151
            mf.MoveSpeed = this.MoveSpeed;
152
            mf.RunSpeed = this.RunSpeed;
153
            mf.AttackSpeed = this.AttackSpeed;
154
            mf.BoundX = this.BoundX;
155
            mf.BoundY = this.BoundY;
156
            mf.BoundCX = this.BoundCX;
157
            mf.BoundCY = this.BoundCY;
158
            mf.RespawnTime = this.RespawnTime;
159
            mf.ExtraExperience = this.ExtraExperience;
160
            mf.MaxMoneyDropAmount = this.MaxMoneyDropAmount;
161
            mf.MinMoneyDropAmount = this.MinMoneyDropAmount;
162
            mf.OwnItemID = this.OwnItemID;
163
            mf.HPPotionID = this.HPPotionID;
164
            mf.MPPotionID = this.MPPotionID;
165
            mf.OwnItemRate = this.OwnItemRate;
166
            mf.LabirinthDrop = this.LabirinthDrop;
167
            mf.Boss = this.Boss;
168
            mf.Guard = this.Guard;
169
            //mf.boardscore = this.boardscore;
170
            mf.Defence = this.Defence;
171
            mf.Reviver = this.Reviver;
172
            return mf;
173
        }
174
        #region DropItem
175
        public byte GetItemBless()
176
        {
177
            if (Kernel.Rate(1))
178
                return 1;
179
            else if (Kernel.Rate(1))
180
                return 3;
181
            return 0;
182
        }
183
        public byte GetItemPlus()
184
        {
185
            if (Kernel.Rate(1))
186
                return 1;
187
            else if (Kernel.Rate(1))
188
                return 2;
189
            return 0;
190
        }
191
        public uint GetItem()
192
        {
193
            try
194
            {
195
                int Normal = System.Convert.ToInt32(Constants.ItemDropQualityRates[0]);
196
                int Refined = System.Convert.ToInt32(Constants.ItemDropQualityRates[1]);
197
                int Unique = System.Convert.ToInt32(Constants.ItemDropQualityRates[2]);
198
                int Elite = System.Convert.ToInt32(Constants.ItemDropQualityRates[3]);
199
                int Super = System.Convert.ToInt32(Constants.ItemDropQualityRates[4]);
200
                int RRR = Kernel.Random.Next(1, 9);
201
                uint ItemIDD = 0;
202
                foreach (var item in Database.ConquerItemInformation.BaseInformations.Values)
203
                {
204
                    if (item == null || item.ID == 0)
205
                        continue;
206
                    #region Hat
207
                    if (RRR == 5)
208
                    {
209
                        if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Head)
210
                        {
211
                            ItemIDD = (uint)Kernel.Random.Next(111000, 118999);
212
                            if (ItemIDD % 10 == 9)
213
                                if (!Kernel.Rate(Super))
214
                                    return 0;
215
                            if (ItemIDD % 10 == 8)
216
                                if (!Kernel.Rate(Elite))
217
                                    return 0;
218
                            if (ItemIDD % 10 == 7)
219
                                if (!Kernel.Rate(Unique))
220
                                    return 0;
221
                            if (ItemIDD % 10 == 6)
222
                                if (!Kernel.Rate(Refined))
223
                                    return 0;
224
                            if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
225
                                return 0;
226
                            return ItemIDD;
227
                        }
228
                    }
229
                    #endregion
230
                    #region Necklace
231
                    else if (RRR == 6)
232
                    {
233
                        if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Necklace)
234
                        {
235
                            ItemIDD = (uint)Kernel.Random.Next(120000, 121000);
236
                            if (ItemIDD % 10 == 9)
237
                                if (!Kernel.Rate(Super))
238
                                    return 0;
239
                            if (ItemIDD % 10 == 8)
240
                                if (!Kernel.Rate(Elite))
241
                                    return 0;
242
                            if (ItemIDD % 10 == 7)
243
                                if (!Kernel.Rate(Unique))
244
                                    return 0;
245
                            if (ItemIDD % 10 == 6)
246
                                if (!Kernel.Rate(Refined))
247
                                    return 0;
248
                            if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
249
                                return 0;
250
                            return ItemIDD;
251
                        }
252
                    }
253
                    #endregion
254
                    #region Armor
255
                    else if (RRR == 2)
256
                    {
257
                        if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Armor)
258
                        {
259
                            ItemIDD = (uint)Kernel.Random.Next(130000, 137000);
260
                            if (ItemIDD % 10 == 9)
261
                                if (!Kernel.Rate(Super))
262
                                    return 0;
263
                            if (ItemIDD % 10 == 8)
264
                                if (!Kernel.Rate(Elite))
265
                                    return 0;
266
                            if (ItemIDD % 10 == 7)
267
                                if (!Kernel.Rate(Unique))
268
                                    return 0;
269
                            if (ItemIDD % 10 == 6)
270
                                if (!Kernel.Rate(Refined))
271
                                    return 0;
272
                            if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
273
                                return 0;
274
                            return ItemIDD;
275
                        }
276
                    }
277
                    #endregion
278
                    #region Ring
279
                    else if (RRR == 8)
280
                    {
281
                        if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Ring)
282
                        {
283
                            ItemIDD = (uint)Kernel.Random.Next(150000, 152000);
284
                            if (ItemIDD % 10 == 9)
285
                                if (!Kernel.Rate(Super))
286
                                    return 0;
287
                            if (ItemIDD % 10 == 8)
288
                                if (!Kernel.Rate(Elite))
289
                                    return 0;
290
                            if (ItemIDD % 10 == 7)
291
                                if (!Kernel.Rate(Unique))
292
                                    return 0;
293
                            if (ItemIDD % 10 == 6)
294
                                if (!Kernel.Rate(Refined))
295
                                    return 0;
296
                            if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
297
                                return 0;
298
                            return ItemIDD;
299
                        }
300
                    }
301
                    #endregion
302
                    #region Boots
303
                    else if (RRR == 3)
304
                    {
305
                        if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Boots)
306
                        {
307
                            ItemIDD = (uint)Kernel.Random.Next(160013, 160249);
308
                            if (ItemIDD % 10 == 9)
309
                                if (!Kernel.Rate(Super))
310
                                    return 0;
311
                            if (ItemIDD % 10 == 8)
312
                                if (!Kernel.Rate(Elite))
313
                                    return 0;
314
                            if (ItemIDD % 10 == 7)
315
                                if (!Kernel.Rate(Unique))
316
                                    return 0;
317
                            if (ItemIDD % 10 == 6)
318
                                if (!Kernel.Rate(Refined))
319
                                    return 0;
320
                            if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
321
                                return 0;
322
                            return ItemIDD;
323
                        }
324
                    }
325
                    #endregion
326
                    #region Fan
327
                    else if (RRR == 9)
328
                    {
329
                        if (Kernel.Rate(1))
330
                        {
331
                            if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.AttackTalisman)
332
                            {
333
                                ItemIDD = (uint)Kernel.Random.Next(201001, 201009);
334
                                if (ItemIDD % 10 == 9)
335
                                    if (!Kernel.Rate(Super))
336
                                        return 0;
337
                                if (ItemIDD % 10 == 8)
338
                                    if (!Kernel.Rate(Elite))
339
                                        return 0;
340
                                if (ItemIDD % 10 == 7)
341
                                    if (!Kernel.Rate(Unique))
342
                                        return 0;
343
                                if (ItemIDD % 10 == 6)
344
                                    if (!Kernel.Rate(Refined))
345
                                        return 0;
346
                                if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
347
                                    return 0;
348
                                return ItemIDD;
349
                            }
350
                        }
351
                    }
352
                    #endregion
353
                    #region Tower
354
                    else if (RRR == 4)
355
                    {
356
                        if (Kernel.Rate(1))
357
                        {
358
                            if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.DefenceTalisman)
359
                            {
360
                                ItemIDD = (uint)Kernel.Random.Next(202001, 202009);
361
                                if (ItemIDD % 10 == 9)
362
                                    if (!Kernel.Rate(Super))
363
                                        return 0;
364
                                if (ItemIDD % 10 == 8)
365
                                    if (!Kernel.Rate(Elite))
366
                                        return 0;
367
                                if (ItemIDD % 10 == 7)
368
                                    if (!Kernel.Rate(Unique))
369
                                        return 0;
370
                                if (ItemIDD % 10 == 6)
371
                                    if (!Kernel.Rate(Refined))
372
                                        return 0;
373
                                if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
374
                                    return 0;
375
                                return ItemIDD;
376
                            }
377
                        }
378
                    }
379
                    #endregion
380
                    #region Crop
381
                    else if (RRR == 7)
382
                    {
383
                        if (Kernel.Rate(1))
384
                        {
385
                            if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.SteedTalisman)
386
                            {
387
                                ItemIDD = (uint)Kernel.Random.Next(203001, 203009);
388
                                if (ItemIDD % 10 == 9)
389
                                    if (!Kernel.Rate(Super))
390
                                        return 0;
391
                                if (ItemIDD % 10 == 8)
392
                                    if (!Kernel.Rate(Elite))
393
                                        return 0;
394
                                if (ItemIDD % 10 == 7)
395
                                    if (!Kernel.Rate(Unique))
396
                                        return 0;
397
                                if (ItemIDD % 10 == 6)
398
                                    if (!Kernel.Rate(Refined))
399
                                        return 0;
400
                                if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
401
                                    return 0;
402
                                return ItemIDD;
403
                            }
404
                        }
405
                    }
406
                    #endregion
407
                    #region Wing
408
                    else if (RRR == 1)
409
                    {
410
                        if (Kernel.Rate(1))
411
                        {
412
                            if (ItemHandler.GetPositionFromID(item.ID) == ItemHandler.Positions.Wing)
413
                            {
414
                                ItemIDD = (uint)Kernel.Random.Next(204001, 204009);
415
                                if (ItemIDD % 10 == 9)
416
                                    if (!Kernel.Rate(Super))
417
                                        return 0;
418
                                if (ItemIDD % 10 == 8)
419
                                    if (!Kernel.Rate(Elite))
420
                                        return 0;
421
                                if (ItemIDD % 10 == 7)
422
                                    if (!Kernel.Rate(Unique))
423
                                        return 0;
424
                                if (ItemIDD % 10 == 6)
425
                                    if (!Kernel.Rate(Refined))
426
                                        return 0;
427
                                if (Database.ConquerItemInformation.BaseInformations[ItemIDD].Level >= 120 && Kernel.Rate(99))
428
                                    return 0;
429
                                return ItemIDD;
430
                            }
431
                        }
432
                    }
433
                    #endregion
434
                }
435
                return ItemIDD;
436
            }
437
            catch (Exception)
438
            {
439
440
            }
441
            return 0;
442
        }
443
        #endregion
444
        private bool changed = false;
445
        private bool sendscore = false;
446
        private string[] scoreMessages = null;
447
        public void AddScore(MonsterInformation mt, Client.GameState user)
448
        {
449
            if (user != null)
450
            {
451
                changed = true;
452
                if (!mt.boardscore.ContainsKey(user.Player.UID))
453
                {
454
                    sendscore = true;
455
                    mt.boardscore.Add(user.Player.UID, user);
456
                }
457
                SendScores(mt);
458
            }
459
        }
460
        public Client.GameState CurrentTopLeader;
461
        public void SendScores(MonsterInformation mt)
462
        {
463
            if (scoreMessages == null)
464
                scoreMessages = new string[0];
465
            Kernel.SendWorldMessage(new MsgTalk("[Top 5 ScoreBoard " + mt.Name + "]", MsgTalk.FirstRightCorner), Server.GamePool, mt.Owner.MapID);
466
467
            foreach (var p in Kernel.GamePool.Values)
468
            {
469
                if (p.Player.MapID == mt.Owner.MapID && p.Player.ScoreBoard.ContainsKey((uint)mt.Owner.UID))
470
                {
471
                    MsgTalk msg1 = new MsgTalk("->> Your Score: " + p.Player.ScoreBoard[(uint)mt.Owner.UID] + " <<-", MsgTalk.ContinueRightCorner);
472
                    MsgTalk msg2 = new MsgTalk("[Rank] -- [Name] ----------- [Score]", MsgTalk.ContinueRightCorner);
473
                    p.Send(msg1);
474
                    p.Send(msg2);
475
                }
476
            }
477
            if (mt.boardscore.Count == 0)
478
                return;
479
            if (changed)
480
                SortScores(mt, out CurrentTopLeader);
481
            for (int c = 0; c < scoreMessages.Length; c++)
482
            {
483
                MsgTalk msg = new MsgTalk(scoreMessages[c], System.Drawing.Color.Red, MsgTalk.ContinueRightCorner);
484
                Kernel.SendWorldMessage(msg, Server.GamePool, mt.Owner.MapID);
485
            }
486
        }
487
        public static List<string> BossMonster = new List<string>()
488
        {
489
            "TeratoDragon","ChillingSpook","BloodyBanshee","DragonWraith","NetherTyrant","ThunderDragon","SwordMaster","PurpleBanshee"
490
        };
491
        public void CheckScore(MonsterInformation mt, Client.GameState user, uint point)
492
        {
493
            if (BossMonster.Contains(mt.Name))
494
            {
495
                if (!user.Player.ScoreBoard.ContainsKey((uint)mt.Owner.UID))
496
                {
497
                    user.Player.ScoreBoard.Add((uint)mt.Owner.UID, 0);
498
                }
499
                else
500
                {
501
                    user.Player.ScoreBoard[(uint)mt.Owner.UID] += point;
502
                    AddScore(mt, user);
503
                }
504
            }
505
        }
506
        private void SortScores(MonsterInformation mt, out Client.GameState user)
507
        {
508
            user = null;
509
            List<string> ret = new List<string>();
510
            int Place = 0;
511
            string str = "";
512
            foreach (Client.GameState p in mt.boardscore.Values.OrderByDescending((p) => p.Player.ScoreBoard[(uint)mt.Owner.UID]))
513
            {
514
                if (Place == 0)
515
                    user = p;
516
                str = "No. " + (Place + 1).ToString() + "- " + p.Player.Name + " Hits [" + p.Player.ScoreBoard[(uint)mt.Owner.UID] + "]";
517
                ret.Add(str);
518
                Place++;
519
                if (Place == 5)
520
                    break;
521
            }
522
            changed = false;
523
            scoreMessages = ret.ToArray();
524
        }
525
        public Dictionary<uint, Client.GameState> reward;
526
        public Client.GameState[] winner()
527
        {
528-
            return (from rd in reward.Values 
528+
            return (from rd in reward.Values
529-
                             orderby rd.Player.ScoreBoard[this.Owner.UID]
529+
                    orderby rd.Player.ScoreBoard[this.Owner.UID]
530-
                             descending select rd).ToArray();
530+
                    descending
531
                    select rd).ToArray();
532
        }
533
        public void Drop(Player killer)
534
        {
535
            if (killer.PlayerFlag == PlayerFlag.Monster)
536
            {
537
                return;
538-
            reward = new Dictionary<uint, Client.GameState>(1000);
538+
539-
            foreach (var user in Kernel.GamePool.Values)
539+
            if (Boss)
540
            {
541-
                if (user.Player.MapID == this.Owner.MapID)
541+
                reward = new Dictionary<uint, Client.GameState>(1000);
542
                foreach (var user in Kernel.GamePool.Values)
543-
                    if (user.Player.ScoreBoard.ContainsKey(this.Owner.UID))
543+
544
                    if (user.Player.MapID == this.Owner.MapID)
545-
                        reward.Add(user.Player.UID, user);
545+
546
                        if (user.Player.ScoreBoard.ContainsKey(this.Owner.UID))
547
                        {
548
                            reward.Add(user.Player.UID, user);
549-
            if (reward.Count > 0)
549+
550
                    }
551-
                var dbase = winner();
551+
552-
                for (int i = 0; i < dbase.Length; i++)
552+
                if (reward.Count > 0)
553
                {
554-
                    if (i <= 4)
554+
                    var dbase = winner();
555
                    for (int i = 0; i < dbase.Length; i++)
556-
                        int rank = i + 1;
556+
557-
                        switch (rank)
557+
                        if (i <= 4)
558
                        {
559
                            int rank = i + 1;
560
                            switch (rank)
561-
                                    dbase[i].Player.ConquerPoints += 50000;
561+
562-
                                   Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 50,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
562+
                                case 1:
563-
                                    break;
563+
564
                                        dbase[i].Player.ConquerPoints += 50000;
565
                                        Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 50,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
566
                                        break;
567-
                                    dbase[i].Player.ConquerPoints += 40000;
567+
568-
                                    Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 40,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
568+
                                case 2:
569-
                                    break;
569+
570
                                        dbase[i].Player.ConquerPoints += 40000;
571
                                        Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 40,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
572
                                        break;
573-
                                    dbase[i].Player.ConquerPoints += 30000;
573+
574-
                                    Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 30,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
574+
                                case 3:
575-
                                    break;
575+
576
                                        dbase[i].Player.ConquerPoints += 30000;
577-
                            case 4:
577+
                                        Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 30,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
578
                                        break;
579-
                                    dbase[i].Player.ConquerPoints += 20000;
579+
580-
                                    Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 20,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
580+
                                case 4:
581-
                                    break;
581+
582
                                        dbase[i].Player.ConquerPoints += 20000;
583-
                            case 5:
583+
                                        Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 20,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
584
                                        break;
585-
                                    dbase[i].Player.ConquerPoints += 10000;
585+
586-
                                    Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 10,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
586+
                                case 5:
587-
                                    break;
587+
588
                                        dbase[i].Player.ConquerPoints += 10000;
589
                                        Kernel.SendWorldMessage(new MsgTalk("Congratulations! " + killer.Name + " has defeated " + Name + " on home and got rank[" + rank + "] 10,000 ConquerPoints.", System.Drawing.Color.Azure, MsgTalk.System));
590-
                        dbase[i].Player.ConquerPoints += (ulong)(0 * rank);
590+
                                        break;
591
                                    }
592
                            }
593
                            dbase[i].Player.ConquerPoints += (ulong)(0 * rank);
594-
               
594+
595-
           
595+
596-
           // if (user.Player.ScoreBoard.ContainsKey((uint)this.Owner.UID))
596+
597-
           //     user.Player.ScoreBoard.Remove((uint)this.Owner.UID);
597+
598
            }
599
            // if (user.Player.ScoreBoard.ContainsKey((uint)this.Owner.UID))
600
            //     user.Player.ScoreBoard.Remove((uint)this.Owner.UID);
601
            if (this.boardscore.Count > 0)
602
                this.boardscore.Clear();
603
604
            if (this.sendscore)
605
            {
606
                //// Rank Reward
607
                this.sendscore = false;
608
                this.changed = false;
609
                this.scoreMessages = null;
610
            }
611
            if (Name == "DarkSidra")
612
            {
613
                if (killer.Owner.Team != null)
614
                    foreach (var team in killer.Owner.Team.Teammates)
615
                        team.Player.SubProStages.StudyPoints += 1000;
616
                killer.TeamXorOrasPoints += 1250;
617
                Kernel.SendWorldMessage(new MsgTalk("Congratulations! The Hunter #41" + killer.Name + "#41 Team Has Kill DarkSidra and Lader of team Get 1000 Points and Each one in team get 1000 study point.", System.Drawing.Color.White, MsgTalk.Center), Server.GamePool);
618
            }
619
            if (Name == "Genzo")
620
            {
621
                if (killer.Owner.Team != null)
622
                    foreach (var team in killer.Owner.Team.Teammates)
623
                        team.Player.SubProStages.StudyPoints += 1000;
624
                killer.TeamXorOrasPoints += 600;
625
                Kernel.SendWorldMessage(new MsgTalk("Congratulations! The Hunter #41" + killer.Name + "#41 Team Has Kill Genzo and Lader of team Get 500 Points and Each one in team get 1000 study point.", System.Drawing.Color.White, MsgTalk.Center), Server.GamePool);
626
            }
627
            if (Name.Contains("ChestDemon"))
628
            {
629
                killer.ChestDemonkill += 1;
630
                killer.Owner.Send(new MsgTalk("You have killed ChestDemon!", System.Drawing.Color.Azure, MsgTalk.Center));
631
            }
632
            #region WeedBug
633
            if (Name == "WeedBug")
634
            {
635
                if (killer.Owner.Player.PeachManager >= 10)
636
                {
637
                    killer.Owner.MessageBox("You`ve finished clearing the Peach Garden. Go and claim a bottle of Power Liquor from the Peach Manager.",
638
                        (p) =>
639
                        {
640
                            MsgAction data = new MsgAction(true);
641
                            data.UID = p.Player.UID;
642
                            data.TimeStamp2 = 18484;
643
                            data.ID = MsgAction.Mode.PathFinding;
644
                            data.wParam1 = 35;
645
                            data.wParam2 = 31;
646
                            killer.Owner.Send(data);
647
                            p.Send(data);
648
                        }, null);
649
                    killer.Owner.Send(new MsgTalk("You`ve finished clearing the Peach Garden. Go and claim a bottle of Power Liquor from the Peach Manager. ", MsgTalk.System));
650
651
                }
652
                else
653
                {
654
                    killer.Owner.Player.WeedBug -= 1;
655
                    killer.Owner.Player.PeachManager += 1;
656
                    killer.Owner.Send(new MsgTalk("You successfully killed a Weed Bug! You still need to uproot " + killer.Owner.Player.WeedBug + " Cloud Weeds Bugs to claim a bottle of Power Liquor from the Peach Manager.", MsgTalk.System));
657
                }
658
659
            }
660
            #endregion
661
            #region ThunderStrike
662
            if (killer.MapID == 3935)
663
            {
664
                if (killer.Owner.Quests.GetQuest(QuestID.ThunderStrike) == null || killer.Owner.Quests.CheckQuest(QuestID.ThunderStrike) == MsgTaskStatus.QuestData.QuestStatus.Available)
665
                    killer.Owner.Quests.Accept(QuestID.ThunderStrike);
666
                if (killer.TodayStrikePoints != 500)
667
                {
668
                    if (killer.Owner.Quests.GetQuest(QuestID.ThunderStrike).Kills < 300)
669
                    {
670
                        int R = 5;
671
                        if (Name == "RealmSoldier")
672
                        {
673
                            R = Kernel.Random.Next(1, 5);
674
                        }
675
                        if (Name.Contains("MilitaryOfficerofRealm"))
676
                        {
677
                            killer.Owner.Send(new MsgTalk("A flood of enemy soldiers emerged from the haze when their leader was killed. Go and clear them!", System.Drawing.Color.Red, 2005));
678
                            R = Kernel.Random.Next(20, 20);
679
                        }
680
                        if (Name == "KylinChariot")
681
                        {
682
                            R = Kernel.Random.Next(50, 50);
683
                        }
684
                        killer.TodayStrikePoints += (uint)R;
685
                        killer.StrikePoints += (uint)R;
686
                        killer.Owner.Quests.ThunderStrike(QuestID.ThunderStrike, (uint)R);
687
                        if (killer.TodayStrikePoints >= 300)
688
                        {
689-
                        
689+
690
                            killer.TodayStrikePoints = 300;
691
                        }
692
693
                        killer.Owner.Send(new MsgTalk("You've received " + killer.StrikePoints + " Strike Points", System.Drawing.Color.Red, MsgTalk.System));
694
                    }
695
                    else
696
                    {
697
                        killer.Owner.MessageBox("You`ve completed the [Thunder Strike] mission in the realm. Report back to the Kingdom Mission Envoy to claim your reward.");
698
                        killer.Owner.Send(new MsgTalk("You've earend 300 Strike Points by killing enemies firercely. Go claim your reward from the Kingdom Mission Envoy.", System.Drawing.Color.Red, MsgTalk.System));
699
                    }
700
                }
701
            }
702
            #endregion
703
            #region CrystalBounty
704
            if (killer.MapID == 3935)
705
            {
706
                if (killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) != MsgTaskStatus.QuestData.QuestStatus.Finished)
707
                {
708
                    if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty) == null || killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) == MsgTaskStatus.QuestData.QuestStatus.Available)
709
                        killer.Owner.Quests.Accept(QuestID.CrystalBounty);
710
                    if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills < 50)
711
                    {
712
                        int R = 5;
713
                        if (Name == "RealmSolider")
714
                        {
715
                            R = Kernel.Random.Next(1, 1);
716
                        }
717
                        if (Name.Contains("MilitaryOfficerofRealm"))
718
                        {
719
720
                            R = Kernel.Random.Next(1, 1);
721
                        }
722
                        if (Name == "KylinChariot")
723
                        {
724
                            R = Kernel.Random.Next(10, 10);
725
                        }
726
                        killer.Owner.Quests.CrystalBounty(QuestID.CrystalBounty, (uint)R);
727
                        if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills >= 50)
728
                        {
729
                            killer.Owner.Send(new MsgTalk("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, MsgTalk.System));
730
                        }
731
                    }
732
                    else
733
                    {
734
                        killer.Owner.Send(new MsgTalk("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, MsgTalk.System));
735
                    }
736
                }
737
            }
738
            #endregion
739
            #region DragonIsland(AnniversaryStar)
740
            if (killer.MapID == 5000)
741
            {
742
                if (Kernel.Rate(1))
743
                {
744
                    var infoss = Database.ConquerItemInformation.BaseInformations[3303191];
745
                    ushort XX = Owner.X, YY = Owner.Y;
746
                    Game.Map MMap = Kernel.Maps[Owner.MapID];
747
                    if (MMap.SelectCoordonates(ref XX, ref YY))
748
                    {
749
                        Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
750
                        floorItem.Item = new Network.GamePackets.MsgItemInfo(true);
751
                        floorItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
752
                        floorItem.Item.ID = 3303191;
753
                        floorItem.Item.Plus = floorItem.Item.Plus;
754-
                        
754+
755
                        floorItem.Item.Durability = infoss.Durability;
756
                        floorItem.Item.MobDropped = true;
757-
                        
757+
758
                        floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
759
                        floorItem.ItemID = 3303191;
760
761
                        floorItem.MapID = Owner.MapID;
762
                        floorItem.Item.StackSize = 1;
763-
                        
763+
764
                        floorItem.MapObjType = Game.MapObjectType.Item;
765
                        floorItem.X = XX;
766
767
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = YY;
768
                        floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
769
                        floorItem.OnFloor = Time32.Now;
770
                        floorItem.ItemColor = floorItem.Item.Color;
771
                        floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
772
                        while (MMap.Npcs.ContainsKey(floorItem.UID))
773
                            floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
774
                        MMap.AddFloorItem(floorItem);
775
                        SendScreenSpawn(floorItem);
776
                    }
777
                }
778
            }
779
            #endregion
780
            #region Realm
781
            if (killer.MapID == 3935)
782
                return;
783
            #endregion
784
            #region ProtectionPill
785
            if (Kernel.Rate(1, 200) && killer.PKMode == Game.Enums.PKMode.Kongfu)
786
            {
787
                var infoss = Database.ConquerItemInformation.BaseInformations[3002029];
788
                ushort XX = Owner.X, YY = Owner.Y;
789
                Game.Map MMap = Kernel.Maps[Owner.MapID];
790
                if (MMap.SelectCoordonates(ref XX, ref YY))
791
                {
792
                    Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
793
                    floorItem.Item = new Network.GamePackets.MsgItemInfo(true);
794
                    floorItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
795
                    floorItem.Item.ID = 3002029;
796
                    floorItem.Item.Plus = floorItem.Item.Plus;
797
                    floorItem.Item.MaximDurability = infoss.Durability;
798
                    floorItem.Item.Durability = infoss.Durability;
799-
                    
799+
800
                    floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
801
                    floorItem.ItemID = 3002029;
802
803
                    floorItem.MapID = Owner.MapID;
804
                    floorItem.Item.StackSize = 1;
805-
                    
805+
806
                    floorItem.MapObjType = Game.MapObjectType.Item;
807
                    floorItem.X = XX;
808
809
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = YY;
810
                    floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
811
                    floorItem.OnFloor = Time32.Now;
812
                    floorItem.ItemColor = floorItem.Item.Color;
813
                    floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
814
                    while (MMap.Npcs.ContainsKey(floorItem.UID))
815
                        floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
816
                    MMap.AddFloorItem(floorItem);
817
                    SendScreenSpawn(floorItem);
818
                }
819
            }
820
            #endregion
821-
         
821+
822
            if (killer.Name.Contains("Guard1")) return;
823
            if (Owner.Name.Contains("Guard1")) return;
824
825
            #endregion
826
            #region Secound Quest
827
            #region Demons
828
            #region ValeDemon
829
            if (Name == "ValeDemon")
830
            {
831
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
832
                {
833
                    uint b = 0;
834
                    uint ban = (uint)Kernel.Random.Next(1, 70);
835
                    switch (ban)
836
                    {
837
                        case 1: b = 722723; break;
838
                        case 2: b = 0; break;
839
                        case 3: b = 722724; break;
840
                        case 4: b = 0; break;
841
                        case 5: b = 0; break;
842
                        case 6: b = 722725; break;
843
                        case 7: b = 0; break;
844
                        case 8: b = 722732; break;
845
                        case 9: b = 0; break;
846
                        case 10: b = 0; break;
847
                        case 11: b = 0; break;
848
                        case 12: b = 722733; break;
849
                        case 13: b = 0; break;
850
                        case 14: b = 0; break;
851
                        case 15: b = 722734; break;
852
                        case 16: b = 0; break;
853
                        case 17: b = 0; break;
854
                        case 18: b = 722735; break;
855
                        case 19: b = 0; break;
856
                        case 20: b = 0; break;
857
                        case 21: b = 722736; break;
858
                        case 22: b = 0; break;
859
                        case 23: b = 0; break;
860
                        case 24: b = 722737; break;
861
                        case 25: b = 0; break;
862
                        case 26: b = 0; break;
863
                        case 27: b = 722738; break;
864
                        case 28: b = 0; break;
865
                        case 29: b = 0; break;
866
                        case 30: b = 722739; break;
867
868
                    }
869
                    ushort X = Owner.X, Y = Owner.Y;
870
                    Map Map = Kernel.Maps[Owner.MapID];
871
                    if (Map.SelectCoordonates(ref X, ref Y))
872
                    {
873
                        MsgMapItem floorItem = new MsgMapItem(true);
874
                        floorItem.Item = new MsgItemInfo(true);
875
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
876
                        floorItem.Item.ID = b;
877
                        floorItem.Item.MobDropped = true;
878
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
879
                        floorItem.ItemID = b;
880
                        floorItem.MapID = Owner.MapID;
881-
                        
881+
882
                        floorItem.X = X;
883
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
884
885
                        floorItem.Type = MsgMapItem.Drop;
886
                        floorItem.OnFloor = Time32.Now;
887
                        floorItem.ItemColor = floorItem.Item.Color;
888
                        floorItem.UID = MsgMapItem.FloorUID.Next;
889
                        while (Map.Npcs.ContainsKey(floorItem.UID))
890
                            floorItem.UID = MsgMapItem.FloorUID.Next;
891
                        Map.AddFloorItem(floorItem);
892
                        SendScreenSpawn(floorItem);
893
                    }
894
                }
895
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
896
                {
897
                    killer.SecoundQuestPoint += 1;
898
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
899
                }
900
            }
901
            if (Name == "ValeDemon")
902
            {
903
904
                uint b = 0;
905
                uint ban = (uint)Kernel.Random.Next(1, 25);
906
                switch (ban)
907
                {
908
                    case 1: b = 722739; break;
909
910
                    case 2: b = 722738; break;
911
912
                    case 3: b = 722737; break;
913
                    case 4: b = 0; break;
914
                    case 5: b = 722732; break;
915
916
                    case 6: b = 722733; break;
917
918
                    case 7: b = 722734; break;
919
920
                    case 8: b = 722735; break;
921
922
                    case 9: b = 722736; break;
923
924
925
926
                }
927
                ushort X = Owner.X, Y = Owner.Y;
928
                Map Map = Kernel.Maps[Owner.MapID];
929
                if (Map.SelectCoordonates(ref X, ref Y))
930
                {
931
                    MsgMapItem floorItem = new MsgMapItem(true);
932
                    floorItem.Item = new MsgItemInfo(true);
933
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
934
                    floorItem.Item.ID = b;
935
                    floorItem.Item.MobDropped = true;
936
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
937
                    floorItem.ItemID = b;
938
                    floorItem.MapID = Owner.MapID;
939-
                    
939+
940
                    floorItem.X = X;
941
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
942
943
                    floorItem.Type = MsgMapItem.Drop;
944
                    floorItem.OnFloor = Time32.Now;
945
                    floorItem.ItemColor = floorItem.Item.Color;
946
                    floorItem.UID = MsgMapItem.FloorUID.Next;
947
                    while (Map.Npcs.ContainsKey(floorItem.UID))
948
                        floorItem.UID = MsgMapItem.FloorUID.Next;
949
                    Map.AddFloorItem(floorItem);
950
                    SendScreenSpawn(floorItem);
951
                }
952
953
            }
954
            #endregion
955
            #region MudDemon
956
            if (Name == "MudDemon")
957
            {
958
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
959
                {
960
                    uint b = 0;
961
                    uint ban = (uint)Kernel.Random.Next(1, 70);
962
                    switch (ban)
963
                    {
964
                        case 1: b = 722723; break;
965
                        case 2: b = 0; break;
966
                        case 3: b = 722724; break;
967
                        case 4: b = 0; break;
968
                        case 5: b = 0; break;
969
                        case 6: b = 722725; break;
970
                        case 7: b = 0; break;
971
                        case 8: b = 722732; break;
972
                        case 9: b = 0; break;
973
                        case 10: b = 0; break;
974
                        case 11: b = 0; break;
975
                        case 12: b = 722733; break;
976
                        case 13: b = 0; break;
977
                        case 14: b = 0; break;
978
                        case 15: b = 722734; break;
979
                        case 16: b = 0; break;
980
                        case 17: b = 0; break;
981
                        case 18: b = 722735; break;
982
                        case 19: b = 0; break;
983
                        case 20: b = 0; break;
984
                        case 21: b = 722736; break;
985
                        case 22: b = 0; break;
986
                        case 23: b = 0; break;
987
                        case 24: b = 722737; break;
988
                        case 25: b = 0; break;
989
                        case 26: b = 0; break;
990
                        case 27: b = 722738; break;
991
                        case 28: b = 0; break;
992
                        case 29: b = 0; break;
993
                        case 30: b = 722739; break;
994
995
                    }
996
                    ushort X = Owner.X, Y = Owner.Y;
997
                    Map Map = Kernel.Maps[Owner.MapID];
998
                    if (Map.SelectCoordonates(ref X, ref Y))
999
                    {
1000
                        MsgMapItem floorItem = new MsgMapItem(true);
1001
                        floorItem.Item = new MsgItemInfo(true);
1002
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1003
                        floorItem.Item.ID = b;
1004
                        floorItem.Item.MobDropped = true;
1005
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1006
                        floorItem.ItemID = b;
1007
                        floorItem.MapID = Owner.MapID;
1008-
                        
1008+
1009
                        floorItem.X = X;
1010
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1011
1012
                        floorItem.Type = MsgMapItem.Drop;
1013
                        floorItem.OnFloor = Time32.Now;
1014
                        floorItem.ItemColor = floorItem.Item.Color;
1015
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1016
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1017
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1018
                        Map.AddFloorItem(floorItem);
1019
                        SendScreenSpawn(floorItem);
1020
                    }
1021
                }
1022
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1023
                {
1024
                    killer.SecoundQuestPoint += 2;
1025
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1026
                }
1027
            }
1028
            if (Name == "MudDemon")
1029
            {
1030
1031
                uint b = 0;
1032
                uint ban = (uint)Kernel.Random.Next(1, 9);
1033
                switch (ban)
1034
                {
1035
                    case 1: b = 722739; break;
1036
1037
                    case 2: b = 722738; break;
1038
1039
                    case 3: b = 722737; break;
1040
                    case 4: b = 0; break;
1041
                    case 5: b = 722732; break;
1042
1043
                    case 6: b = 722733; break;
1044
1045
                    case 7: b = 722734; break;
1046
1047
                    case 8: b = 722735; break;
1048
1049
                    case 9: b = 722736; break;
1050
1051
1052
1053
                }
1054
                ushort X = Owner.X, Y = Owner.Y;
1055
                Map Map = Kernel.Maps[Owner.MapID];
1056
                if (Map.SelectCoordonates(ref X, ref Y))
1057
                {
1058
                    MsgMapItem floorItem = new MsgMapItem(true);
1059
                    floorItem.Item = new MsgItemInfo(true);
1060
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1061
                    floorItem.Item.ID = b;
1062
                    floorItem.Item.MobDropped = true;
1063
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1064
                    floorItem.ItemID = b;
1065
                    floorItem.MapID = Owner.MapID;
1066-
                    
1066+
1067
                    floorItem.X = X;
1068
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1069
1070
                    floorItem.Type = MsgMapItem.Drop;
1071
                    floorItem.OnFloor = Time32.Now;
1072
                    floorItem.ItemColor = floorItem.Item.Color;
1073
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1074
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1075
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1076
                    Map.AddFloorItem(floorItem);
1077
                    SendScreenSpawn(floorItem);
1078
                }
1079
1080
            }
1081
            #endregion
1082
            #region AbyssDemon
1083
            if (Name == "AbyssDemon")
1084
            {
1085
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1086
                {
1087
                    uint b = 0;
1088
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1089
                    switch (ban)
1090
                    {
1091
                        case 1: b = 722723; break;
1092
                        case 2: b = 0; break;
1093
                        case 3: b = 722724; break;
1094
                        case 4: b = 0; break;
1095
                        case 5: b = 0; break;
1096
                        case 6: b = 722725; break;
1097
                        case 7: b = 0; break;
1098
                        case 8: b = 722732; break;
1099
                        case 9: b = 0; break;
1100
                        case 10: b = 0; break;
1101
                        case 11: b = 0; break;
1102
                        case 12: b = 722733; break;
1103
                        case 13: b = 0; break;
1104
                        case 14: b = 0; break;
1105
                        case 15: b = 722734; break;
1106
                        case 16: b = 0; break;
1107
                        case 17: b = 0; break;
1108
                        case 18: b = 722735; break;
1109
                        case 19: b = 0; break;
1110
                        case 20: b = 0; break;
1111
                        case 21: b = 722736; break;
1112
                        case 22: b = 0; break;
1113
                        case 23: b = 0; break;
1114
                        case 24: b = 722737; break;
1115
                        case 25: b = 0; break;
1116
                        case 26: b = 0; break;
1117
                        case 27: b = 722738; break;
1118
                        case 28: b = 0; break;
1119
                        case 29: b = 0; break;
1120
                        case 30: b = 722739; break;
1121
1122
                    }
1123
                    ushort X = Owner.X, Y = Owner.Y;
1124
                    Map Map = Kernel.Maps[Owner.MapID];
1125
                    if (Map.SelectCoordonates(ref X, ref Y))
1126
                    {
1127
                        MsgMapItem floorItem = new MsgMapItem(true);
1128
                        floorItem.Item = new MsgItemInfo(true);
1129
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1130
                        floorItem.Item.ID = b;
1131
                        floorItem.Item.MobDropped = true;
1132
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1133
                        floorItem.ItemID = b;
1134
                        floorItem.MapID = Owner.MapID;
1135-
                        
1135+
1136
                        floorItem.X = X;
1137
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1138
1139
                        floorItem.Type = MsgMapItem.Drop;
1140
                        floorItem.OnFloor = Time32.Now;
1141
                        floorItem.ItemColor = floorItem.Item.Color;
1142
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1143
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1144
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1145
                        Map.AddFloorItem(floorItem);
1146
                        SendScreenSpawn(floorItem);
1147
                    }
1148
                }
1149
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1150
                {
1151
                    killer.SecoundQuestPoint += 4;
1152
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1153
                }
1154
            }
1155
            if (Name == "AbyssDemon")
1156
            {
1157
1158
                uint b = 0;
1159
                uint ban = (uint)Kernel.Random.Next(1, 9);
1160
                switch (ban)
1161
                {
1162
                    case 1: b = 722739; break;
1163
                    case 2: b = 722738; break;
1164
                    case 3: b = 722737; break;
1165
                    case 4: b = 0; break;
1166
                    case 5: b = 722732; break;
1167
                    case 6: b = 722733; break;
1168
                    case 7: b = 722734; break;
1169
                    case 8: b = 722735; break;
1170
                    case 9: b = 722736; break;
1171
                }
1172
                ushort X = Owner.X, Y = Owner.Y;
1173
                Map Map = Kernel.Maps[Owner.MapID];
1174
                if (Map.SelectCoordonates(ref X, ref Y))
1175
                {
1176
                    MsgMapItem floorItem = new MsgMapItem(true);
1177
                    floorItem.Item = new MsgItemInfo(true);
1178
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1179
                    floorItem.Item.ID = b;
1180
                    floorItem.Item.MobDropped = true;
1181
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1182
                    floorItem.ItemID = b;
1183
                    floorItem.MapID = Owner.MapID;
1184-
                   
1184+
1185
                    floorItem.X = X;
1186
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1187
1188
                    floorItem.Type = MsgMapItem.Drop;
1189
                    floorItem.OnFloor = Time32.Now;
1190
                    floorItem.ItemColor = floorItem.Item.Color;
1191
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1192
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1193
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1194
                    Map.AddFloorItem(floorItem);
1195
                    SendScreenSpawn(floorItem);
1196
                }
1197
1198
            }
1199
            #endregion
1200
            #region DemonLord
1201
            if (Name == "DemonLord")
1202
            {
1203
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1204
                {
1205
                    uint b = 0;
1206
                    uint ban = (uint)Kernel.Random.Next(1, 6);
1207
                    switch (ban)
1208
                    {
1209
                        case 1: b = 722723; break;
1210
                        case 2: b = 0; break;
1211
                        case 3: b = 722724; break;
1212
                        case 4: b = 0; break;
1213
                        case 5: b = 0; break;
1214
                        case 6: b = 722725; break;
1215
                        case 7: b = 0; break;
1216
                        case 8: b = 722732; break;
1217
                        case 9: b = 0; break;
1218
                        case 10: b = 0; break;
1219
                        case 11: b = 0; break;
1220
                        case 12: b = 722733; break;
1221
                        case 13: b = 0; break;
1222
                        case 14: b = 0; break;
1223
                        case 15: b = 722734; break;
1224
                        case 16: b = 0; break;
1225
                        case 17: b = 0; break;
1226
                        case 18: b = 722735; break;
1227
                        case 19: b = 0; break;
1228
                        case 20: b = 0; break;
1229
                        case 21: b = 722736; break;
1230
                        case 22: b = 0; break;
1231
                        case 23: b = 0; break;
1232
                        case 24: b = 722737; break;
1233
                        case 25: b = 0; break;
1234
                        case 26: b = 0; break;
1235
                        case 27: b = 722738; break;
1236
                        case 28: b = 0; break;
1237
                        case 29: b = 0; break;
1238
                        case 30: b = 722739; break;
1239
1240
                    }
1241
                    ushort X = Owner.X, Y = Owner.Y;
1242
                    Map Map = Kernel.Maps[Owner.MapID];
1243
                    if (Map.SelectCoordonates(ref X, ref Y))
1244
                    {
1245
                        MsgMapItem floorItem = new MsgMapItem(true);
1246
                        floorItem.Item = new MsgItemInfo(true);
1247
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1248
                        floorItem.Item.ID = b;
1249
                        floorItem.Item.MobDropped = true;
1250
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1251
                        floorItem.ItemID = b;
1252
                        floorItem.MapID = Owner.MapID;
1253-
                       
1253+
1254
                        floorItem.X = X;
1255
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1256
1257
                        floorItem.Type = MsgMapItem.Drop;
1258
                        floorItem.OnFloor = Time32.Now;
1259
                        floorItem.ItemColor = floorItem.Item.Color;
1260
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1261
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1262
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1263
                        Map.AddFloorItem(floorItem);
1264
                        SendScreenSpawn(floorItem);
1265
                    }
1266
                }
1267
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1268
                {
1269
                    killer.SecoundQuestPoint += 500;
1270
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1271
                }
1272
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest6, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1273
                {
1274
                    ushort X = Owner.X, Y = Owner.Y;
1275
                    Map Map = Kernel.Maps[Owner.MapID];
1276
                    if (Map.SelectCoordonates(ref X, ref Y))
1277
                    {
1278
                        MsgMapItem floorItem = new MsgMapItem(true);
1279
                        floorItem.Item = new MsgItemInfo(true);
1280
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1281
                        floorItem.Item.ID = 722727;
1282
                        floorItem.Item.MobDropped = true;
1283
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1284
                        floorItem.ItemID = 722727;
1285
                        floorItem.MapID = Owner.MapID;
1286-
                        
1286+
1287
                        floorItem.X = X;
1288
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1289
1290
                        floorItem.Type = MsgMapItem.Drop;
1291
                        floorItem.OnFloor = Time32.Now;
1292
                        floorItem.ItemColor = floorItem.Item.Color;
1293
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1294
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1295
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1296
                        Map.AddFloorItem(floorItem);
1297
                        SendScreenSpawn(floorItem);
1298
                    }
1299
                }
1300
            }
1301
            if (Name == "DemonLord")
1302
            {
1303
1304
                uint b = 0;
1305
                uint ban = (uint)Kernel.Random.Next(1, 9);
1306
                switch (ban)
1307
                {
1308
                    case 1: b = 722739; break;
1309
                    case 2: b = 722738; break;
1310
                    case 3: b = 722737; break;
1311
                    case 4: b = 0; break;
1312
                    case 5: b = 722732; break;
1313
                    case 6: b = 722733; break;
1314
                    case 7: b = 722734; break;
1315
                    case 8: b = 722735; break;
1316
                    case 9: b = 722736; break;
1317
                }
1318
                ushort X = Owner.X, Y = Owner.Y;
1319
                Map Map = Kernel.Maps[Owner.MapID];
1320
                if (Map.SelectCoordonates(ref X, ref Y))
1321
                {
1322
                    MsgMapItem floorItem = new MsgMapItem(true);
1323
                    floorItem.Item = new MsgItemInfo(true);
1324
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1325
                    floorItem.Item.ID = b;
1326
                    floorItem.Item.MobDropped = true;
1327
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1328
                    floorItem.ItemID = b;
1329
                    floorItem.MapID = Owner.MapID;
1330-
                    
1330+
1331
                    floorItem.X = X;
1332
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1333
1334
                    floorItem.Type = MsgMapItem.Drop;
1335
                    floorItem.OnFloor = Time32.Now;
1336
                    floorItem.ItemColor = floorItem.Item.Color;
1337
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1338
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1339
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1340
                    Map.AddFloorItem(floorItem);
1341
                    SendScreenSpawn(floorItem);
1342
                }
1343
1344
            }
1345
            #endregion
1346
            #endregion
1347
            #region Serpent
1348
            #region SingingSerpent
1349
            if (Name == "SingingSerpent")
1350
            {
1351
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1352
                {
1353
                    uint b = 0;
1354
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1355
                    switch (ban)
1356
                    {
1357
                        case 1: b = 722723; break;
1358
                        case 2: b = 0; break;
1359
                        case 3: b = 722724; break;
1360
                        case 4: b = 0; break;
1361
                        case 5: b = 0; break;
1362
                        case 6: b = 722725; break;
1363
                        case 7: b = 0; break;
1364
                        case 8: b = 722732; break;
1365
                        case 9: b = 0; break;
1366
                        case 10: b = 0; break;
1367
                        case 11: b = 0; break;
1368
                        case 12: b = 722733; break;
1369
                        case 13: b = 0; break;
1370
                        case 14: b = 0; break;
1371
                        case 15: b = 722734; break;
1372
                        case 16: b = 0; break;
1373
                        case 17: b = 0; break;
1374
                        case 18: b = 722735; break;
1375
                        case 19: b = 0; break;
1376
                        case 20: b = 0; break;
1377
                        case 21: b = 722736; break;
1378
                        case 22: b = 0; break;
1379
                        case 23: b = 0; break;
1380
                        case 24: b = 722737; break;
1381
                        case 25: b = 0; break;
1382
                        case 26: b = 0; break;
1383
                        case 27: b = 722738; break;
1384
                        case 28: b = 0; break;
1385
                        case 29: b = 0; break;
1386
                        case 30: b = 722739; break;
1387
1388
                    }
1389
                    ushort X = Owner.X, Y = Owner.Y;
1390
                    Map Map = Kernel.Maps[Owner.MapID];
1391
                    if (Map.SelectCoordonates(ref X, ref Y))
1392
                    {
1393
                        MsgMapItem floorItem = new MsgMapItem(true);
1394
                        floorItem.Item = new MsgItemInfo(true);
1395
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1396
                        floorItem.Item.ID = b;
1397
                        floorItem.Item.MobDropped = true;
1398
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1399
                        floorItem.ItemID = b;
1400
                        floorItem.MapID = Owner.MapID;
1401-
                       
1401+
1402
                        floorItem.X = X;
1403
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1404
1405
                        floorItem.Type = MsgMapItem.Drop;
1406
                        floorItem.OnFloor = Time32.Now;
1407
                        floorItem.ItemColor = floorItem.Item.Color;
1408
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1409
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1410
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1411
                        Map.AddFloorItem(floorItem);
1412
                        SendScreenSpawn(floorItem);
1413
                    }
1414
                }
1415
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1416
                {
1417
                    killer.SecoundQuestPoint += 1;
1418
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1419
                }
1420
            }
1421
            if (Name == "SingingSerpent")
1422
            {
1423
1424
                uint b = 0;
1425
                uint ban = (uint)Kernel.Random.Next(1, 9);
1426
                switch (ban)
1427
                {
1428
                    case 1: b = 722739; break;
1429
                    case 2: b = 722738; break;
1430
                    case 3: b = 722737; break;
1431
                    case 4: b = 0; break;
1432
                    case 5: b = 722732; break;
1433
                    case 6: b = 722733; break;
1434
                    case 7: b = 722734; break;
1435
                    case 8: b = 722735; break;
1436
                    case 9: b = 722736; break;
1437
                }
1438
                ushort X = Owner.X, Y = Owner.Y;
1439
                Map Map = Kernel.Maps[Owner.MapID];
1440
                if (Map.SelectCoordonates(ref X, ref Y))
1441
                {
1442
                    MsgMapItem floorItem = new MsgMapItem(true);
1443
                    floorItem.Item = new MsgItemInfo(true);
1444
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1445
                    floorItem.Item.ID = b;
1446
                    floorItem.Item.MobDropped = true;
1447
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1448
                    floorItem.ItemID = b;
1449
                    floorItem.MapID = Owner.MapID;
1450-
                   
1450+
1451
                    floorItem.X = X;
1452
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1453
1454
                    floorItem.Type = MsgMapItem.Drop;
1455
                    floorItem.OnFloor = Time32.Now;
1456
                    floorItem.ItemColor = floorItem.Item.Color;
1457
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1458
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1459
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1460
                    Map.AddFloorItem(floorItem);
1461
                    SendScreenSpawn(floorItem);
1462
                }
1463
1464
            }
1465
            #endregion
1466
            #region RoaringSerpent
1467
            if (Name == "RoaringSerpent")
1468
            {
1469
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1470
                {
1471
                    uint b = 0;
1472
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1473
                    switch (ban)
1474
                    {
1475
                        case 1: b = 722723; break;
1476
                        case 2: b = 0; break;
1477
                        case 3: b = 722724; break;
1478
                        case 4: b = 0; break;
1479
                        case 5: b = 0; break;
1480
                        case 6: b = 722725; break;
1481
                        case 7: b = 0; break;
1482
                        case 8: b = 722732; break;
1483
                        case 9: b = 0; break;
1484
                        case 10: b = 0; break;
1485
                        case 11: b = 0; break;
1486
                        case 12: b = 722733; break;
1487
                        case 13: b = 0; break;
1488
                        case 14: b = 0; break;
1489
                        case 15: b = 722734; break;
1490
                        case 16: b = 0; break;
1491
                        case 17: b = 0; break;
1492
                        case 18: b = 722735; break;
1493
                        case 19: b = 0; break;
1494
                        case 20: b = 0; break;
1495
                        case 21: b = 722736; break;
1496
                        case 22: b = 0; break;
1497
                        case 23: b = 0; break;
1498
                        case 24: b = 722737; break;
1499
                        case 25: b = 0; break;
1500
                        case 26: b = 0; break;
1501
                        case 27: b = 722738; break;
1502
                        case 28: b = 0; break;
1503
                        case 29: b = 0; break;
1504
                        case 30: b = 722739; break;
1505
1506
                    }
1507
                    ushort X = Owner.X, Y = Owner.Y;
1508
                    Map Map = Kernel.Maps[Owner.MapID];
1509
                    if (Map.SelectCoordonates(ref X, ref Y))
1510
                    {
1511
                        MsgMapItem floorItem = new MsgMapItem(true);
1512
                        floorItem.Item = new MsgItemInfo(true);
1513
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1514
                        floorItem.Item.ID = b;
1515
                        floorItem.Item.MobDropped = true;
1516
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1517
                        floorItem.ItemID = b;
1518
                        floorItem.MapID = Owner.MapID;
1519-
                        
1519+
1520
                        floorItem.X = X;
1521
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1522
1523
                        floorItem.Type = MsgMapItem.Drop;
1524
                        floorItem.OnFloor = Time32.Now;
1525
                        floorItem.ItemColor = floorItem.Item.Color;
1526
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1527
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1528
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1529
                        Map.AddFloorItem(floorItem);
1530
                        SendScreenSpawn(floorItem);
1531
                    }
1532
                }
1533
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1534
                {
1535
                    killer.SecoundQuestPoint += 2;
1536
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1537
                }
1538
            }
1539
            if (Name == "RoaringSerpent")
1540
            {
1541
1542
                uint b = 0;
1543
                uint ban = (uint)Kernel.Random.Next(1, 9);
1544
                switch (ban)
1545
                {
1546
                    case 1: b = 722739; break;
1547
                    case 2: b = 722738; break;
1548
                    case 3: b = 722737; break;
1549
                    case 4: b = 0; break;
1550
                    case 5: b = 722732; break;
1551
                    case 6: b = 722733; break;
1552
                    case 7: b = 722734; break;
1553
                    case 8: b = 722735; break;
1554
                    case 9: b = 722736; break;
1555
                }
1556
                ushort X = Owner.X, Y = Owner.Y;
1557
                Map Map = Kernel.Maps[Owner.MapID];
1558
                if (Map.SelectCoordonates(ref X, ref Y))
1559
                {
1560
                    MsgMapItem floorItem = new MsgMapItem(true);
1561
                    floorItem.Item = new MsgItemInfo(true);
1562
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1563
                    floorItem.Item.ID = b;
1564
                    floorItem.Item.MobDropped = true;
1565
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1566
                    floorItem.ItemID = b;
1567
                    floorItem.MapID = Owner.MapID;
1568-
                    
1568+
1569
                    floorItem.X = X;
1570
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1571
1572
                    floorItem.Type = MsgMapItem.Drop;
1573
                    floorItem.OnFloor = Time32.Now;
1574
                    floorItem.ItemColor = floorItem.Item.Color;
1575
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1576
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1577
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1578
                    Map.AddFloorItem(floorItem);
1579
                    SendScreenSpawn(floorItem);
1580
                }
1581
1582
            }
1583
            #endregion
1584
            #region CryingSerpent
1585
            if (Name == "CryingSerpent")
1586
            {
1587
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1588
                {
1589
                    uint b = 0;
1590
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1591
                    switch (ban)
1592
                    {
1593
                        case 1: b = 722723; break;
1594
                        case 2: b = 0; break;
1595
                        case 3: b = 722724; break;
1596
                        case 4: b = 0; break;
1597
                        case 5: b = 0; break;
1598
                        case 6: b = 722725; break;
1599
                        case 7: b = 0; break;
1600
                        case 8: b = 722732; break;
1601
                        case 9: b = 0; break;
1602
                        case 10: b = 0; break;
1603
                        case 11: b = 0; break;
1604
                        case 12: b = 722733; break;
1605
                        case 13: b = 0; break;
1606
                        case 14: b = 0; break;
1607
                        case 15: b = 722734; break;
1608
                        case 16: b = 0; break;
1609
                        case 17: b = 0; break;
1610
                        case 18: b = 722735; break;
1611
                        case 19: b = 0; break;
1612
                        case 20: b = 0; break;
1613
                        case 21: b = 722736; break;
1614
                        case 22: b = 0; break;
1615
                        case 23: b = 0; break;
1616
                        case 24: b = 722737; break;
1617
                        case 25: b = 0; break;
1618
                        case 26: b = 0; break;
1619
                        case 27: b = 722738; break;
1620
                        case 28: b = 0; break;
1621
                        case 29: b = 0; break;
1622
                        case 30: b = 722739; break;
1623
1624
                    }
1625
                    ushort X = Owner.X, Y = Owner.Y;
1626
                    Map Map = Kernel.Maps[Owner.MapID];
1627
                    if (Map.SelectCoordonates(ref X, ref Y))
1628
                    {
1629
                        MsgMapItem floorItem = new MsgMapItem(true);
1630
                        floorItem.Item = new MsgItemInfo(true);
1631
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1632
                        floorItem.Item.ID = b;
1633
                        floorItem.Item.MobDropped = true;
1634
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1635
                        floorItem.ItemID = b;
1636
                        floorItem.MapID = Owner.MapID;
1637-
                       
1637+
1638
                        floorItem.X = X;
1639
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1640
1641
                        floorItem.Type = MsgMapItem.Drop;
1642
                        floorItem.OnFloor = Time32.Now;
1643
                        floorItem.ItemColor = floorItem.Item.Color;
1644
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1645
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1646
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1647
                        Map.AddFloorItem(floorItem);
1648
                        SendScreenSpawn(floorItem);
1649
                    }
1650
                }
1651
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1652
                {
1653
                    killer.SecoundQuestPoint += 4;
1654
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1655
                }
1656
            }
1657
            if (Name == "CryingSerpent")
1658
            {
1659
1660
                uint b = 0;
1661
                uint ban = (uint)Kernel.Random.Next(1, 9);
1662
                switch (ban)
1663
                {
1664
                    case 1: b = 722739; break;
1665
                    case 2: b = 722738; break;
1666
                    case 3: b = 722737; break;
1667
                    case 4: b = 0; break;
1668
                    case 5: b = 722732; break;
1669
                    case 6: b = 722733; break;
1670
                    case 7: b = 722734; break;
1671
                    case 8: b = 722735; break;
1672
                    case 9: b = 722736; break;
1673
                }
1674
                ushort X = Owner.X, Y = Owner.Y;
1675
                Map Map = Kernel.Maps[Owner.MapID];
1676
                if (Map.SelectCoordonates(ref X, ref Y))
1677
                {
1678
                    MsgMapItem floorItem = new MsgMapItem(true);
1679
                    floorItem.Item = new MsgItemInfo(true);
1680
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1681
                    floorItem.Item.ID = b;
1682
                    floorItem.Item.MobDropped = true;
1683
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1684
                    floorItem.ItemID = b;
1685
                    floorItem.MapID = Owner.MapID;
1686-
                    
1686+
1687
                    floorItem.X = X;
1688
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1689
1690
                    floorItem.Type = MsgMapItem.Drop;
1691
                    floorItem.OnFloor = Time32.Now;
1692
                    floorItem.ItemColor = floorItem.Item.Color;
1693
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1694
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1695
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1696
                    Map.AddFloorItem(floorItem);
1697
                    SendScreenSpawn(floorItem);
1698
                }
1699
1700
            }
1701
            #endregion
1702
            #region SerpentSpirit
1703
            if (Name == "SerpentSpirit")
1704
            {
1705
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1706
                {
1707
                    uint b = 0;
1708
                    uint ban = (uint)Kernel.Random.Next(1, 9);
1709
                    switch (ban)
1710
                    {
1711
                        case 1: b = 722739; break;
1712
                        case 2: b = 722738; break;
1713
                        case 3: b = 722737; break;
1714
                        case 4: b = 0; break;
1715
                        case 5: b = 722732; break;
1716
                        case 6: b = 722733; break;
1717
                        case 7: b = 722734; break;
1718
                        case 8: b = 722735; break;
1719
                        case 9: b = 722736; break;
1720
                    }
1721
                    ushort X = Owner.X, Y = Owner.Y;
1722
                    Map Map = Kernel.Maps[Owner.MapID];
1723
                    if (Map.SelectCoordonates(ref X, ref Y))
1724
                    {
1725
                        MsgMapItem floorItem = new MsgMapItem(true);
1726
                        floorItem.Item = new MsgItemInfo(true);
1727
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1728
                        floorItem.Item.ID = b;
1729
                        floorItem.Item.MobDropped = true;
1730
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1731
                        floorItem.ItemID = b;
1732
                        floorItem.MapID = Owner.MapID;
1733-
                        
1733+
1734
                        floorItem.X = X;
1735
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1736
1737
                        floorItem.Type = MsgMapItem.Drop;
1738
                        floorItem.OnFloor = Time32.Now;
1739
                        floorItem.ItemColor = floorItem.Item.Color;
1740
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1741
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1742
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1743
                        Map.AddFloorItem(floorItem);
1744
                        SendScreenSpawn(floorItem);
1745
                    }
1746
                }
1747
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1748
                {
1749
                    killer.SecoundQuestPoint += 500;
1750
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1751
                }
1752
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest6, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1753
                {
1754
                    ushort X = Owner.X, Y = Owner.Y;
1755
                    Map Map = Kernel.Maps[Owner.MapID];
1756
                    if (Map.SelectCoordonates(ref X, ref Y))
1757
                    {
1758
                        MsgMapItem floorItem = new MsgMapItem(true);
1759
                        floorItem.Item = new MsgItemInfo(true);
1760
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1761
                        floorItem.Item.ID = 722727;
1762
                        floorItem.Item.MobDropped = true;
1763
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1764
                        floorItem.ItemID = 722727;
1765
                        floorItem.MapID = Owner.MapID;
1766-
                        
1766+
1767
                        floorItem.X = X;
1768
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1769
1770
                        floorItem.Type = MsgMapItem.Drop;
1771
                        floorItem.OnFloor = Time32.Now;
1772
                        floorItem.ItemColor = floorItem.Item.Color;
1773
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1774
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1775
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1776
                        Map.AddFloorItem(floorItem);
1777
                        SendScreenSpawn(floorItem);
1778
                    }
1779
                }
1780
            }
1781
            if (Name == "SerpentSpirit")
1782
            {
1783
1784
                uint b = 0;
1785
                uint ban = (uint)Kernel.Random.Next(1, 9);
1786
                switch (ban)
1787
                {
1788
                    case 1: b = 722739; break;
1789
                    case 2: b = 722738; break;
1790
                    case 3: b = 722737; break;
1791
                    case 4: b = 0; break;
1792
                    case 5: b = 722732; break;
1793
                    case 6: b = 722733; break;
1794
                    case 7: b = 722734; break;
1795
                    case 8: b = 722735; break;
1796
                    case 9: b = 722736; break;
1797
                }
1798
                ushort X = Owner.X, Y = Owner.Y;
1799
                Map Map = Kernel.Maps[Owner.MapID];
1800
                if (Map.SelectCoordonates(ref X, ref Y))
1801
                {
1802
                    MsgMapItem floorItem = new MsgMapItem(true);
1803
                    floorItem.Item = new MsgItemInfo(true);
1804
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1805
                    floorItem.Item.ID = b;
1806
                    floorItem.Item.MobDropped = true;
1807
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1808
                    floorItem.ItemID = b;
1809
                    floorItem.MapID = Owner.MapID;
1810-
                    
1810+
1811
                    floorItem.X = X;
1812
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1813
1814
                    floorItem.Type = MsgMapItem.Drop;
1815
                    floorItem.OnFloor = Time32.Now;
1816
                    floorItem.ItemColor = floorItem.Item.Color;
1817
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1818
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1819
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1820
                    Map.AddFloorItem(floorItem);
1821
                    SendScreenSpawn(floorItem);
1822
                }
1823
1824
            }
1825
            #endregion
1826
            #endregion
1827
            #region Fiend
1828
            #region BlueFiend
1829
            if (Name == "BlueFiend")
1830
            {
1831
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1832
                {
1833
                    uint b = 0;
1834
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1835
                    switch (ban)
1836
                    {
1837
                        case 1: b = 722723; break;
1838
                        case 2: b = 0; break;
1839
                        case 3: b = 722724; break;
1840
                        case 4: b = 0; break;
1841
                        case 5: b = 0; break;
1842
                        case 6: b = 722725; break;
1843
                        case 7: b = 0; break;
1844
                        case 8: b = 722732; break;
1845
                        case 9: b = 0; break;
1846
                        case 10: b = 0; break;
1847
                        case 11: b = 0; break;
1848
                        case 12: b = 722733; break;
1849
                        case 13: b = 0; break;
1850
                        case 14: b = 0; break;
1851
                        case 15: b = 722734; break;
1852
                        case 16: b = 0; break;
1853
                        case 17: b = 0; break;
1854
                        case 18: b = 722735; break;
1855
                        case 19: b = 0; break;
1856
                        case 20: b = 0; break;
1857
                        case 21: b = 722736; break;
1858
                        case 22: b = 0; break;
1859
                        case 23: b = 0; break;
1860
                        case 24: b = 722737; break;
1861
                        case 25: b = 0; break;
1862
                        case 26: b = 0; break;
1863
                        case 27: b = 722738; break;
1864
                        case 28: b = 0; break;
1865
                        case 29: b = 0; break;
1866
                        case 30: b = 722739; break;
1867
1868
                    }
1869
                    ushort X = Owner.X, Y = Owner.Y;
1870
                    Map Map = Kernel.Maps[Owner.MapID];
1871
                    if (Map.SelectCoordonates(ref X, ref Y))
1872
                    {
1873
                        MsgMapItem floorItem = new MsgMapItem(true);
1874
                        floorItem.Item = new MsgItemInfo(true);
1875
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1876
                        floorItem.Item.ID = b;
1877
                        floorItem.Item.MobDropped = true;
1878
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1879
                        floorItem.ItemID = b;
1880
                        floorItem.MapID = Owner.MapID;
1881-
                        
1881+
1882
                        floorItem.X = X;
1883
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1884
1885
                        floorItem.Type = MsgMapItem.Drop;
1886
                        floorItem.OnFloor = Time32.Now;
1887
                        floorItem.ItemColor = floorItem.Item.Color;
1888
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1889
                        while (Map.Npcs.ContainsKey(floorItem.UID))
1890
                            floorItem.UID = MsgMapItem.FloorUID.Next;
1891
                        Map.AddFloorItem(floorItem);
1892
                        SendScreenSpawn(floorItem);
1893
                    }
1894
                }
1895
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
1896
                {
1897
                    killer.SecoundQuestPoint += 1;
1898
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
1899
                }
1900
            }
1901
            if (Name == "BlueFiend")
1902
            {
1903
1904
                uint b = 0;
1905
                uint ban = (uint)Kernel.Random.Next(1, 9);
1906
                switch (ban)
1907
                {
1908
                    case 1: b = 722739; break;
1909
                    case 2: b = 722738; break;
1910
                    case 3: b = 722737; break;
1911
                    case 4: b = 0; break;
1912
                    case 5: b = 722732; break;
1913
                    case 6: b = 722733; break;
1914
                    case 7: b = 722734; break;
1915
                    case 8: b = 722735; break;
1916
                    case 9: b = 722736; break;
1917
                }
1918
                ushort X = Owner.X, Y = Owner.Y;
1919
                Map Map = Kernel.Maps[Owner.MapID];
1920
                if (Map.SelectCoordonates(ref X, ref Y))
1921
                {
1922
                    MsgMapItem floorItem = new MsgMapItem(true);
1923
                    floorItem.Item = new MsgItemInfo(true);
1924
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1925
                    floorItem.Item.ID = b;
1926
                    floorItem.Item.MobDropped = true;
1927
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1928
                    floorItem.ItemID = b;
1929
                    floorItem.MapID = Owner.MapID;
1930-
                    
1930+
1931
                    floorItem.X = X;
1932
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
1933
1934
                    floorItem.Type = MsgMapItem.Drop;
1935
                    floorItem.OnFloor = Time32.Now;
1936
                    floorItem.ItemColor = floorItem.Item.Color;
1937
                    floorItem.UID = MsgMapItem.FloorUID.Next;
1938
                    while (Map.Npcs.ContainsKey(floorItem.UID))
1939
                        floorItem.UID = MsgMapItem.FloorUID.Next;
1940
                    Map.AddFloorItem(floorItem);
1941
                    SendScreenSpawn(floorItem);
1942
                }
1943
1944
            }
1945
            #endregion
1946
            #region RedFiend
1947
            if (Name == "RedFiend")
1948
            {
1949
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
1950
                {
1951
                    uint b = 0;
1952
                    uint ban = (uint)Kernel.Random.Next(1, 70);
1953
                    switch (ban)
1954
                    {
1955
                        case 1: b = 722723; break;
1956
                        case 2: b = 0; break;
1957
                        case 3: b = 722724; break;
1958
                        case 4: b = 0; break;
1959
                        case 5: b = 0; break;
1960
                        case 6: b = 722725; break;
1961
                        case 7: b = 0; break;
1962
                        case 8: b = 722732; break;
1963
                        case 9: b = 0; break;
1964
                        case 10: b = 0; break;
1965
                        case 11: b = 0; break;
1966
                        case 12: b = 722733; break;
1967
                        case 13: b = 0; break;
1968
                        case 14: b = 0; break;
1969
                        case 15: b = 722734; break;
1970
                        case 16: b = 0; break;
1971
                        case 17: b = 0; break;
1972
                        case 18: b = 722735; break;
1973
                        case 19: b = 0; break;
1974
                        case 20: b = 0; break;
1975
                        case 21: b = 722736; break;
1976
                        case 22: b = 0; break;
1977
                        case 23: b = 0; break;
1978
                        case 24: b = 722737; break;
1979
                        case 25: b = 0; break;
1980
                        case 26: b = 0; break;
1981
                        case 27: b = 722738; break;
1982
                        case 28: b = 0; break;
1983
                        case 29: b = 0; break;
1984
                        case 30: b = 722739; break;
1985
1986
                    }
1987
                    ushort X = Owner.X, Y = Owner.Y;
1988
                    Map Map = Kernel.Maps[Owner.MapID];
1989
                    if (Map.SelectCoordonates(ref X, ref Y))
1990
                    {
1991
                        MsgMapItem floorItem = new MsgMapItem(true);
1992
                        floorItem.Item = new MsgItemInfo(true);
1993
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
1994
                        floorItem.Item.ID = b;
1995
                        floorItem.Item.MobDropped = true;
1996
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
1997
                        floorItem.ItemID = b;
1998
                        floorItem.MapID = Owner.MapID;
1999-
                        
1999+
2000
                        floorItem.X = X;
2001
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2002
2003
                        floorItem.Type = MsgMapItem.Drop;
2004
                        floorItem.OnFloor = Time32.Now;
2005
                        floorItem.ItemColor = floorItem.Item.Color;
2006
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2007
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2008
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2009
                        Map.AddFloorItem(floorItem);
2010
                        SendScreenSpawn(floorItem);
2011
                    }
2012
                }
2013
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2014
                {
2015
                    killer.SecoundQuestPoint += 2;
2016
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2017
                }
2018
            }
2019
            if (Name == "RedFiend")
2020
            {
2021
2022
                uint b = 0;
2023
                uint ban = (uint)Kernel.Random.Next(1, 9);
2024
                switch (ban)
2025
                {
2026
                    case 1: b = 722739; break;
2027
                    case 2: b = 722738; break;
2028
                    case 3: b = 722737; break;
2029
                    case 4: b = 0; break;
2030
                    case 5: b = 722732; break;
2031
                    case 6: b = 722733; break;
2032
                    case 7: b = 722734; break;
2033
                    case 8: b = 722735; break;
2034
                    case 9: b = 722736; break;
2035
                }
2036
                ushort X = Owner.X, Y = Owner.Y;
2037
                Map Map = Kernel.Maps[Owner.MapID];
2038
                if (Map.SelectCoordonates(ref X, ref Y))
2039
                {
2040
                    MsgMapItem floorItem = new MsgMapItem(true);
2041
                    floorItem.Item = new MsgItemInfo(true);
2042
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2043
                    floorItem.Item.ID = b;
2044
                    floorItem.Item.MobDropped = true;
2045
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2046
                    floorItem.ItemID = b;
2047
                    floorItem.MapID = Owner.MapID;
2048-
                    
2048+
2049
                    floorItem.X = X;
2050
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2051
2052
                    floorItem.Type = MsgMapItem.Drop;
2053
                    floorItem.OnFloor = Time32.Now;
2054
                    floorItem.ItemColor = floorItem.Item.Color;
2055
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2056
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2057
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2058
                    Map.AddFloorItem(floorItem);
2059
                    SendScreenSpawn(floorItem);
2060
                }
2061
2062
            }
2063
            #endregion
2064
            #region WhiteFiend
2065
            if (Name == "WhiteFiend")
2066
            {
2067
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2068
                {
2069
                    uint b = 0;
2070
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2071
                    switch (ban)
2072
                    {
2073
                        case 1: b = 722723; break;
2074
                        case 2: b = 0; break;
2075
                        case 3: b = 722724; break;
2076
                        case 4: b = 0; break;
2077
                        case 5: b = 0; break;
2078
                        case 6: b = 722725; break;
2079
                        case 7: b = 0; break;
2080
                        case 8: b = 722732; break;
2081
                        case 9: b = 0; break;
2082
                        case 10: b = 0; break;
2083
                        case 11: b = 0; break;
2084
                        case 12: b = 722733; break;
2085
                        case 13: b = 0; break;
2086
                        case 14: b = 0; break;
2087
                        case 15: b = 722734; break;
2088
                        case 16: b = 0; break;
2089
                        case 17: b = 0; break;
2090
                        case 18: b = 722735; break;
2091
                        case 19: b = 0; break;
2092
                        case 20: b = 0; break;
2093
                        case 21: b = 722736; break;
2094
                        case 22: b = 0; break;
2095
                        case 23: b = 0; break;
2096
                        case 24: b = 722737; break;
2097
                        case 25: b = 0; break;
2098
                        case 26: b = 0; break;
2099
                        case 27: b = 722738; break;
2100
                        case 28: b = 0; break;
2101
                        case 29: b = 0; break;
2102
                        case 30: b = 722739; break;
2103
2104
                    }
2105
                    ushort X = Owner.X, Y = Owner.Y;
2106
                    Map Map = Kernel.Maps[Owner.MapID];
2107
                    if (Map.SelectCoordonates(ref X, ref Y))
2108
                    {
2109
                        MsgMapItem floorItem = new MsgMapItem(true);
2110
                        floorItem.Item = new MsgItemInfo(true);
2111
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2112
                        floorItem.Item.ID = b;
2113
                        floorItem.Item.MobDropped = true;
2114
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2115
                        floorItem.ItemID = b;
2116
                        floorItem.MapID = Owner.MapID;
2117-
                        
2117+
2118
                        floorItem.X = X;
2119
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2120
2121
                        floorItem.Type = MsgMapItem.Drop;
2122
                        floorItem.OnFloor = Time32.Now;
2123
                        floorItem.ItemColor = floorItem.Item.Color;
2124
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2125
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2126
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2127
                        Map.AddFloorItem(floorItem);
2128
                        SendScreenSpawn(floorItem);
2129
                    }
2130
                }
2131
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2132
                {
2133
                    killer.SecoundQuestPoint += 4;
2134
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2135
                }
2136
            }
2137
            if (Name == "WhiteFiend")
2138
            {
2139
2140
                uint b = 0;
2141
                uint ban = (uint)Kernel.Random.Next(1, 9);
2142
                switch (ban)
2143
                {
2144
                    case 1: b = 722739; break;
2145
                    case 2: b = 722738; break;
2146
                    case 3: b = 722737; break;
2147
                    case 4: b = 0; break;
2148
                    case 5: b = 722732; break;
2149
                    case 6: b = 722733; break;
2150
                    case 7: b = 722734; break;
2151
                    case 8: b = 722735; break;
2152
                    case 9: b = 722736; break;
2153
                }
2154
                ushort X = Owner.X, Y = Owner.Y;
2155
                Map Map = Kernel.Maps[Owner.MapID];
2156
                if (Map.SelectCoordonates(ref X, ref Y))
2157
                {
2158
                    MsgMapItem floorItem = new MsgMapItem(true);
2159
                    floorItem.Item = new MsgItemInfo(true);
2160
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2161
                    floorItem.Item.ID = b;
2162
                    floorItem.Item.MobDropped = true;
2163
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2164
                    floorItem.ItemID = b;
2165
                    floorItem.MapID = Owner.MapID;
2166-
                   
2166+
2167
                    floorItem.X = X;
2168
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2169
2170
                    floorItem.Type = MsgMapItem.Drop;
2171
                    floorItem.OnFloor = Time32.Now;
2172
                    floorItem.ItemColor = floorItem.Item.Color;
2173
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2174
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2175
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2176
                    Map.AddFloorItem(floorItem);
2177
                    SendScreenSpawn(floorItem);
2178
                }
2179
2180
            }
2181
            #endregion
2182
            #region FiendLord
2183
            if (Name == "FiendLord")
2184
            {
2185
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2186
                {
2187
                    uint b = 0;
2188
                    uint ban = (uint)Kernel.Random.Next(1, 6);
2189
                    switch (ban)
2190
                    {
2191
                        case 1: b = 722723; break;
2192
                        case 2: b = 0; break;
2193
                        case 3: b = 722724; break;
2194
                        case 4: b = 0; break;
2195
                        case 5: b = 0; break;
2196
                        case 6: b = 722725; break;
2197
                        case 7: b = 0; break;
2198
                        case 8: b = 722732; break;
2199
                        case 9: b = 0; break;
2200
                        case 10: b = 0; break;
2201
                        case 11: b = 0; break;
2202
                        case 12: b = 722733; break;
2203
                        case 13: b = 0; break;
2204
                        case 14: b = 0; break;
2205
                        case 15: b = 722734; break;
2206
                        case 16: b = 0; break;
2207
                        case 17: b = 0; break;
2208
                        case 18: b = 722735; break;
2209
                        case 19: b = 0; break;
2210
                        case 20: b = 0; break;
2211
                        case 21: b = 722736; break;
2212
                        case 22: b = 0; break;
2213
                        case 23: b = 0; break;
2214
                        case 24: b = 722737; break;
2215
                        case 25: b = 0; break;
2216
                        case 26: b = 0; break;
2217
                        case 27: b = 722738; break;
2218
                        case 28: b = 0; break;
2219
                        case 29: b = 0; break;
2220
                        case 30: b = 722739; break;
2221
2222
                    }
2223
                    ushort X = Owner.X, Y = Owner.Y;
2224
                    Map Map = Kernel.Maps[Owner.MapID];
2225
                    if (Map.SelectCoordonates(ref X, ref Y))
2226
                    {
2227
                        MsgMapItem floorItem = new MsgMapItem(true);
2228
                        floorItem.Item = new MsgItemInfo(true);
2229
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2230
                        floorItem.Item.ID = b;
2231
                        floorItem.Item.MobDropped = true;
2232
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2233
                        floorItem.ItemID = b;
2234
                        floorItem.MapID = Owner.MapID;
2235-
                        
2235+
2236
                        floorItem.X = X;
2237
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2238
2239
                        floorItem.Type = MsgMapItem.Drop;
2240
                        floorItem.OnFloor = Time32.Now;
2241
                        floorItem.ItemColor = floorItem.Item.Color;
2242
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2243
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2244
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2245
                        Map.AddFloorItem(floorItem);
2246
                        SendScreenSpawn(floorItem);
2247
                    }
2248
                }
2249
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2250
                {
2251
                    killer.SecoundQuestPoint += 500;
2252
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2253
                }
2254
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest6, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2255
                {
2256
                    ushort X = Owner.X, Y = Owner.Y;
2257
                    Map Map = Kernel.Maps[Owner.MapID];
2258
                    if (Map.SelectCoordonates(ref X, ref Y))
2259
                    {
2260
                        MsgMapItem floorItem = new MsgMapItem(true);
2261
                        floorItem.Item = new MsgItemInfo(true);
2262
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2263
                        floorItem.Item.ID = 722727;
2264
                        floorItem.Item.MobDropped = true;
2265
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2266
                        floorItem.ItemID = 722727;
2267
                        floorItem.MapID = Owner.MapID;
2268-
                       
2268+
2269
                        floorItem.X = X;
2270
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2271
2272
                        floorItem.Type = MsgMapItem.Drop;
2273
                        floorItem.OnFloor = Time32.Now;
2274
                        floorItem.ItemColor = floorItem.Item.Color;
2275
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2276
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2277
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2278
                        Map.AddFloorItem(floorItem);
2279
                        SendScreenSpawn(floorItem);
2280
                    }
2281
                }
2282
            }
2283
            if (Name == "FiendLord")
2284
            {
2285
2286
                uint b = 0;
2287
                uint ban = (uint)Kernel.Random.Next(1, 9);
2288
                switch (ban)
2289
                {
2290
                    case 1: b = 722739; break;
2291
                    case 2: b = 722738; break;
2292
                    case 3: b = 722737; break;
2293
                    case 4: b = 0; break;
2294
                    case 5: b = 722732; break;
2295
                    case 6: b = 722733; break;
2296
                    case 7: b = 722734; break;
2297
                    case 8: b = 722735; break;
2298
                    case 9: b = 722736; break;
2299
                }
2300
                ushort X = Owner.X, Y = Owner.Y;
2301
                Map Map = Kernel.Maps[Owner.MapID];
2302
                if (Map.SelectCoordonates(ref X, ref Y))
2303
                {
2304
                    MsgMapItem floorItem = new MsgMapItem(true);
2305
                    floorItem.Item = new MsgItemInfo(true);
2306
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2307
                    floorItem.Item.ID = b;
2308
                    floorItem.Item.MobDropped = true;
2309
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2310
                    floorItem.ItemID = b;
2311
                    floorItem.MapID = Owner.MapID;
2312-
                    
2312+
2313
                    floorItem.X = X;
2314
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2315
2316
                    floorItem.Type = MsgMapItem.Drop;
2317
                    floorItem.OnFloor = Time32.Now;
2318
                    floorItem.ItemColor = floorItem.Item.Color;
2319
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2320
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2321
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2322
                    Map.AddFloorItem(floorItem);
2323
                    SendScreenSpawn(floorItem);
2324
                }
2325
2326
            }
2327
            #endregion
2328
            #endregion
2329
            #region Ape
2330
            #region WindApe
2331
            if (Name == "WindApe")
2332
            {
2333
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2334
                {
2335
                    uint b = 0;
2336
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2337
                    switch (ban)
2338
                    {
2339
                        case 1: b = 722723; break;
2340
                        case 2: b = 0; break;
2341
                        case 3: b = 722724; break;
2342
                        case 4: b = 0; break;
2343
                        case 5: b = 0; break;
2344
                        case 6: b = 722725; break;
2345
                        case 7: b = 0; break;
2346
                        case 8: b = 722732; break;
2347
                        case 9: b = 0; break;
2348
                        case 10: b = 0; break;
2349
                        case 11: b = 0; break;
2350
                        case 12: b = 722733; break;
2351
                        case 13: b = 0; break;
2352
                        case 14: b = 0; break;
2353
                        case 15: b = 722734; break;
2354
                        case 16: b = 0; break;
2355
                        case 17: b = 0; break;
2356
                        case 18: b = 722735; break;
2357
                        case 19: b = 0; break;
2358
                        case 20: b = 0; break;
2359
                        case 21: b = 722736; break;
2360
                        case 22: b = 0; break;
2361
                        case 23: b = 0; break;
2362
                        case 24: b = 722737; break;
2363
                        case 25: b = 0; break;
2364
                        case 26: b = 0; break;
2365
                        case 27: b = 722738; break;
2366
                        case 28: b = 0; break;
2367
                        case 29: b = 0; break;
2368
                        case 30: b = 722739; break;
2369
2370
                    }
2371
                    ushort X = Owner.X, Y = Owner.Y;
2372
                    Map Map = Kernel.Maps[Owner.MapID];
2373
                    if (Map.SelectCoordonates(ref X, ref Y))
2374
                    {
2375
                        MsgMapItem floorItem = new MsgMapItem(true);
2376
                        floorItem.Item = new MsgItemInfo(true);
2377
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2378
                        floorItem.Item.ID = b;
2379
                        floorItem.Item.MobDropped = true;
2380
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2381
                        floorItem.ItemID = b;
2382
                        floorItem.MapID = Owner.MapID;
2383-
                        
2383+
2384
                        floorItem.X = X;
2385
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2386
2387
                        floorItem.Type = MsgMapItem.Drop;
2388
                        floorItem.OnFloor = Time32.Now;
2389
                        floorItem.ItemColor = floorItem.Item.Color;
2390
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2391
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2392
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2393
                        Map.AddFloorItem(floorItem);
2394
                        SendScreenSpawn(floorItem);
2395
                    }
2396
                }
2397
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2398
                {
2399
                    killer.SecoundQuestPoint += 1;
2400
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2401
                }
2402
            }
2403
            if (Name == "WindApe")
2404
            {
2405
2406
                uint b = 0;
2407
                uint ban = (uint)Kernel.Random.Next(1, 9);
2408
                switch (ban)
2409
                {
2410
                    case 1: b = 722739; break;
2411
                    case 2: b = 722738; break;
2412
                    case 3: b = 722737; break;
2413
                    case 4: b = 0; break;
2414
                    case 5: b = 722732; break;
2415
                    case 6: b = 722733; break;
2416
                    case 7: b = 722734; break;
2417
                    case 8: b = 722735; break;
2418
                    case 9: b = 722736; break;
2419
                }
2420
                ushort X = Owner.X, Y = Owner.Y;
2421
                Map Map = Kernel.Maps[Owner.MapID];
2422
                if (Map.SelectCoordonates(ref X, ref Y))
2423
                {
2424
                    MsgMapItem floorItem = new MsgMapItem(true);
2425
                    floorItem.Item = new MsgItemInfo(true);
2426
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2427
                    floorItem.Item.ID = b;
2428
                    floorItem.Item.MobDropped = true;
2429
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2430
                    floorItem.ItemID = b;
2431
                    floorItem.MapID = Owner.MapID;
2432-
                    
2432+
2433
                    floorItem.X = X;
2434
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2435
2436
                    floorItem.Type = MsgMapItem.Drop;
2437
                    floorItem.OnFloor = Time32.Now;
2438
                    floorItem.ItemColor = floorItem.Item.Color;
2439
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2440
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2441
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2442
                    Map.AddFloorItem(floorItem);
2443
                    SendScreenSpawn(floorItem);
2444
                }
2445
2446
            }
2447
            #endregion
2448
            #region RainApe
2449
            if (Name == "RainApe")
2450
            {
2451
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2452
                {
2453
                    uint b = 0;
2454
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2455
                    switch (ban)
2456
                    {
2457
                        case 1: b = 722723; break;
2458
                        case 2: b = 0; break;
2459
                        case 3: b = 722724; break;
2460
                        case 4: b = 0; break;
2461
                        case 5: b = 0; break;
2462
                        case 6: b = 722725; break;
2463
                        case 7: b = 0; break;
2464
                        case 8: b = 722732; break;
2465
                        case 9: b = 0; break;
2466
                        case 10: b = 0; break;
2467
                        case 11: b = 0; break;
2468
                        case 12: b = 722733; break;
2469
                        case 13: b = 0; break;
2470
                        case 14: b = 0; break;
2471
                        case 15: b = 722734; break;
2472
                        case 16: b = 0; break;
2473
                        case 17: b = 0; break;
2474
                        case 18: b = 722735; break;
2475
                        case 19: b = 0; break;
2476
                        case 20: b = 0; break;
2477
                        case 21: b = 722736; break;
2478
                        case 22: b = 0; break;
2479
                        case 23: b = 0; break;
2480
                        case 24: b = 722737; break;
2481
                        case 25: b = 0; break;
2482
                        case 26: b = 0; break;
2483
                        case 27: b = 722738; break;
2484
                        case 28: b = 0; break;
2485
                        case 29: b = 0; break;
2486
                        case 30: b = 722739; break;
2487
2488
                    }
2489
                    ushort X = Owner.X, Y = Owner.Y;
2490
                    Map Map = Kernel.Maps[Owner.MapID];
2491
                    if (Map.SelectCoordonates(ref X, ref Y))
2492
                    {
2493
                        MsgMapItem floorItem = new MsgMapItem(true);
2494
                        floorItem.Item = new MsgItemInfo(true);
2495
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2496
                        floorItem.Item.ID = b;
2497
                        floorItem.Item.MobDropped = true;
2498
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2499
                        floorItem.ItemID = b;
2500
                        floorItem.MapID = Owner.MapID;
2501-
                       
2501+
2502
                        floorItem.X = X;
2503
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2504
2505
                        floorItem.Type = MsgMapItem.Drop;
2506
                        floorItem.OnFloor = Time32.Now;
2507
                        floorItem.ItemColor = floorItem.Item.Color;
2508
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2509
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2510
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2511
                        Map.AddFloorItem(floorItem);
2512
                        SendScreenSpawn(floorItem);
2513
                    }
2514
                }
2515
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2516
                {
2517
                    killer.SecoundQuestPoint += 2;
2518
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2519
                }
2520
            }
2521
            if (Name == "RainApe")
2522
            {
2523
2524
                uint b = 0;
2525
                uint ban = (uint)Kernel.Random.Next(1, 9);
2526
                switch (ban)
2527
                {
2528
                    case 1: b = 722739; break;
2529
                    case 2: b = 722738; break;
2530
                    case 3: b = 722737; break;
2531
                    case 4: b = 0; break;
2532
                    case 5: b = 722732; break;
2533
                    case 6: b = 722733; break;
2534
                    case 7: b = 722734; break;
2535
                    case 8: b = 722735; break;
2536
                    case 9: b = 722736; break;
2537
                }
2538
                ushort X = Owner.X, Y = Owner.Y;
2539
                Map Map = Kernel.Maps[Owner.MapID];
2540
                if (Map.SelectCoordonates(ref X, ref Y))
2541
                {
2542
                    MsgMapItem floorItem = new MsgMapItem(true);
2543
                    floorItem.Item = new MsgItemInfo(true);
2544
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2545
                    floorItem.Item.ID = b;
2546
                    floorItem.Item.MobDropped = true;
2547
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2548
                    floorItem.ItemID = b;
2549
                    floorItem.MapID = Owner.MapID;
2550-
                    
2550+
2551
                    floorItem.X = X;
2552
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2553
2554
                    floorItem.Type = MsgMapItem.Drop;
2555
                    floorItem.OnFloor = Time32.Now;
2556
                    floorItem.ItemColor = floorItem.Item.Color;
2557
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2558
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2559
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2560
                    Map.AddFloorItem(floorItem);
2561
                    SendScreenSpawn(floorItem);
2562
                }
2563
2564
            }
2565
            #endregion
2566
            #region LightningApe
2567
            if (Name == "LightningApe")
2568
            {
2569
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2570
                {
2571
                    uint b = 0;
2572
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2573
                    switch (ban)
2574
                    {
2575
                        case 1: b = 722723; break;
2576
                        case 2: b = 0; break;
2577
                        case 3: b = 722724; break;
2578
                        case 4: b = 0; break;
2579
                        case 5: b = 0; break;
2580
                        case 6: b = 722725; break;
2581
                        case 7: b = 0; break;
2582
                        case 8: b = 722732; break;
2583
                        case 9: b = 0; break;
2584
                        case 10: b = 0; break;
2585
                        case 11: b = 0; break;
2586
                        case 12: b = 722733; break;
2587
                        case 13: b = 0; break;
2588
                        case 14: b = 0; break;
2589
                        case 15: b = 722734; break;
2590
                        case 16: b = 0; break;
2591
                        case 17: b = 0; break;
2592
                        case 18: b = 722735; break;
2593
                        case 19: b = 0; break;
2594
                        case 20: b = 0; break;
2595
                        case 21: b = 722736; break;
2596
                        case 22: b = 0; break;
2597
                        case 23: b = 0; break;
2598
                        case 24: b = 722737; break;
2599
                        case 25: b = 0; break;
2600
                        case 26: b = 0; break;
2601
                        case 27: b = 722738; break;
2602
                        case 28: b = 0; break;
2603
                        case 29: b = 0; break;
2604
                        case 30: b = 722739; break;
2605
2606
                    }
2607
                    ushort X = Owner.X, Y = Owner.Y;
2608
                    Map Map = Kernel.Maps[Owner.MapID];
2609
                    if (Map.SelectCoordonates(ref X, ref Y))
2610
                    {
2611
                        MsgMapItem floorItem = new MsgMapItem(true);
2612
                        floorItem.Item = new MsgItemInfo(true);
2613
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2614
                        floorItem.Item.ID = b;
2615
                        floorItem.Item.MobDropped = true;
2616
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2617
                        floorItem.ItemID = b;
2618
                        floorItem.MapID = Owner.MapID;
2619-
                        
2619+
2620
                        floorItem.X = X;
2621
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2622
2623
                        floorItem.Type = MsgMapItem.Drop;
2624
                        floorItem.OnFloor = Time32.Now;
2625
                        floorItem.ItemColor = floorItem.Item.Color;
2626
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2627
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2628
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2629
                        Map.AddFloorItem(floorItem);
2630
                        SendScreenSpawn(floorItem);
2631
                    }
2632
                }
2633
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2634
                {
2635
                    killer.SecoundQuestPoint += 4;
2636
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2637
                }
2638
            }
2639
            if (Name == "LightningApe")
2640
            {
2641
2642
                uint b = 0;
2643
                uint ban = (uint)Kernel.Random.Next(1, 9);
2644
                switch (ban)
2645
                {
2646
                    case 1: b = 722739; break;
2647
                    case 2: b = 722738; break;
2648
                    case 3: b = 722737; break;
2649
                    case 4: b = 0; break;
2650
                    case 5: b = 722732; break;
2651
                    case 6: b = 722733; break;
2652
                    case 7: b = 722734; break;
2653
                    case 8: b = 722735; break;
2654
                    case 9: b = 722736; break;
2655
                }
2656
                ushort X = Owner.X, Y = Owner.Y;
2657
                Map Map = Kernel.Maps[Owner.MapID];
2658
                if (Map.SelectCoordonates(ref X, ref Y))
2659
                {
2660
                    MsgMapItem floorItem = new MsgMapItem(true);
2661
                    floorItem.Item = new MsgItemInfo(true);
2662
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2663
                    floorItem.Item.ID = b;
2664
                    floorItem.Item.MobDropped = true;
2665
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2666
                    floorItem.ItemID = b;
2667
                    floorItem.MapID = Owner.MapID;
2668-
                    
2668+
2669
                    floorItem.X = X;
2670
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2671
2672
                    floorItem.Type = MsgMapItem.Drop;
2673
                    floorItem.OnFloor = Time32.Now;
2674
                    floorItem.ItemColor = floorItem.Item.Color;
2675
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2676
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2677
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2678
                    Map.AddFloorItem(floorItem);
2679
                    SendScreenSpawn(floorItem);
2680
                }
2681
2682
            }
2683
            #endregion
2684
            #region FuryApe
2685
            if (Name == "FuryApe")
2686
            {
2687
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2688
                {
2689
                    uint b = 0;
2690
                    uint ban = (uint)Kernel.Random.Next(1, 6);
2691
                    switch (ban)
2692
                    {
2693
                        case 1: b = 722723; break;
2694
                        case 2: b = 0; break;
2695
                        case 3: b = 722724; break;
2696
                        case 4: b = 0; break;
2697
                        case 5: b = 0; break;
2698
                        case 6: b = 722725; break;
2699
                        case 7: b = 0; break;
2700
                        case 8: b = 722732; break;
2701
                        case 9: b = 0; break;
2702
                        case 10: b = 0; break;
2703
                        case 11: b = 0; break;
2704
                        case 12: b = 722733; break;
2705
                        case 13: b = 0; break;
2706
                        case 14: b = 0; break;
2707
                        case 15: b = 722734; break;
2708
                        case 16: b = 0; break;
2709
                        case 17: b = 0; break;
2710
                        case 18: b = 722735; break;
2711
                        case 19: b = 0; break;
2712
                        case 20: b = 0; break;
2713
                        case 21: b = 722736; break;
2714
                        case 22: b = 0; break;
2715
                        case 23: b = 0; break;
2716
                        case 24: b = 722737; break;
2717
                        case 25: b = 0; break;
2718
                        case 26: b = 0; break;
2719
                        case 27: b = 722738; break;
2720
                        case 28: b = 0; break;
2721
                        case 29: b = 0; break;
2722
                        case 30: b = 722739; break;
2723
2724
                    }
2725
                    ushort X = Owner.X, Y = Owner.Y;
2726
                    Map Map = Kernel.Maps[Owner.MapID];
2727
                    if (Map.SelectCoordonates(ref X, ref Y))
2728
                    {
2729
                        MsgMapItem floorItem = new MsgMapItem(true);
2730
                        floorItem.Item = new MsgItemInfo(true);
2731
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2732
                        floorItem.Item.ID = b;
2733
                        floorItem.Item.MobDropped = true;
2734
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2735
                        floorItem.ItemID = b;
2736
                        floorItem.MapID = Owner.MapID;
2737-
                        
2737+
2738
                        floorItem.X = X;
2739
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2740
2741
                        floorItem.Type = MsgMapItem.Drop;
2742
                        floorItem.OnFloor = Time32.Now;
2743
                        floorItem.ItemColor = floorItem.Item.Color;
2744
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2745
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2746
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2747
                        Map.AddFloorItem(floorItem);
2748
                        SendScreenSpawn(floorItem);
2749
                    }
2750
                }
2751
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2752
                {
2753
                    killer.SecoundQuestPoint += 500;
2754
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2755
                }
2756
            }
2757
            if (Name == "FuryApe")
2758
            {
2759
2760
                uint b = 0;
2761
                uint ban = (uint)Kernel.Random.Next(1, 9);
2762
                switch (ban)
2763
                {
2764
                    case 1: b = 722739; break;
2765
                    case 2: b = 722738; break;
2766
                    case 3: b = 722737; break;
2767
                    case 4: b = 0; break;
2768
                    case 5: b = 722732; break;
2769
                    case 6: b = 722733; break;
2770
                    case 7: b = 722734; break;
2771
                    case 8: b = 722735; break;
2772
                    case 9: b = 722736; break;
2773
                }
2774
                ushort X = Owner.X, Y = Owner.Y;
2775
                Map Map = Kernel.Maps[Owner.MapID];
2776
                if (Map.SelectCoordonates(ref X, ref Y))
2777
                {
2778
                    MsgMapItem floorItem = new MsgMapItem(true);
2779
                    floorItem.Item = new MsgItemInfo(true);
2780
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2781
                    floorItem.Item.ID = b;
2782
                    floorItem.Item.MobDropped = true;
2783
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2784
                    floorItem.ItemID = b;
2785
                    floorItem.MapID = Owner.MapID;
2786-
                    
2786+
2787
                    floorItem.X = X;
2788
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2789
2790
                    floorItem.Type = MsgMapItem.Drop;
2791
                    floorItem.OnFloor = Time32.Now;
2792
                    floorItem.ItemColor = floorItem.Item.Color;
2793
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2794
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2795
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2796
                    Map.AddFloorItem(floorItem);
2797
                    SendScreenSpawn(floorItem);
2798
                }
2799
2800
            }
2801
            #endregion
2802
            #endregion
2803
            #region Hades
2804
            #region WoodHades
2805
            if (Name == "WoodHades")
2806
            {
2807
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2808
                {
2809
                    uint b = 0;
2810
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2811
                    switch (ban)
2812
                    {
2813
                        case 1: b = 722723; break;
2814
                        case 2: b = 0; break;
2815
                        case 3: b = 722724; break;
2816
                        case 4: b = 0; break;
2817
                        case 5: b = 0; break;
2818
                        case 6: b = 722725; break;
2819
                        case 7: b = 0; break;
2820
                        case 8: b = 722732; break;
2821
                        case 9: b = 0; break;
2822
                        case 10: b = 0; break;
2823
                        case 11: b = 0; break;
2824
                        case 12: b = 722733; break;
2825
                        case 13: b = 0; break;
2826
                        case 14: b = 0; break;
2827
                        case 15: b = 722734; break;
2828
                        case 16: b = 0; break;
2829
                        case 17: b = 0; break;
2830
                        case 18: b = 722735; break;
2831
                        case 19: b = 0; break;
2832
                        case 20: b = 0; break;
2833
                        case 21: b = 722736; break;
2834
                        case 22: b = 0; break;
2835
                        case 23: b = 0; break;
2836
                        case 24: b = 722737; break;
2837
                        case 25: b = 0; break;
2838
                        case 26: b = 0; break;
2839
                        case 27: b = 722738; break;
2840
                        case 28: b = 0; break;
2841
                        case 29: b = 0; break;
2842
                        case 30: b = 722739; break;
2843
2844
                    }
2845
                    ushort X = Owner.X, Y = Owner.Y;
2846
                    Map Map = Kernel.Maps[Owner.MapID];
2847
                    if (Map.SelectCoordonates(ref X, ref Y))
2848
                    {
2849
                        MsgMapItem floorItem = new MsgMapItem(true);
2850
                        floorItem.Item = new MsgItemInfo(true);
2851
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2852
                        floorItem.Item.ID = b;
2853
                        floorItem.Item.MobDropped = true;
2854
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2855
                        floorItem.ItemID = b;
2856
                        floorItem.MapID = Owner.MapID;
2857-
                        
2857+
2858
                        floorItem.X = X;
2859
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2860
2861
                        floorItem.Type = MsgMapItem.Drop;
2862
                        floorItem.OnFloor = Time32.Now;
2863
                        floorItem.ItemColor = floorItem.Item.Color;
2864
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2865
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2866
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2867
                        Map.AddFloorItem(floorItem);
2868
                        SendScreenSpawn(floorItem);
2869
                    }
2870
                }
2871
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2872
                {
2873
                    killer.SecoundQuestPoint += 1;
2874
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2875
                }
2876
            }
2877
            if (Name == "WoodHades")
2878
            {
2879
2880
                uint b = 0;
2881
                uint ban = (uint)Kernel.Random.Next(1, 9);
2882
                switch (ban)
2883
                {
2884
                    case 1: b = 722739; break;
2885
                    case 2: b = 722738; break;
2886
                    case 3: b = 722737; break;
2887
                    case 4: b = 0; break;
2888
                    case 5: b = 722732; break;
2889
                    case 6: b = 722733; break;
2890
                    case 7: b = 722734; break;
2891
                    case 8: b = 722735; break;
2892
                    case 9: b = 722736; break;
2893
                }
2894
                ushort X = Owner.X, Y = Owner.Y;
2895
                Map Map = Kernel.Maps[Owner.MapID];
2896
                if (Map.SelectCoordonates(ref X, ref Y))
2897
                {
2898
                    MsgMapItem floorItem = new MsgMapItem(true);
2899
                    floorItem.Item = new MsgItemInfo(true);
2900
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2901
                    floorItem.Item.ID = b;
2902
                    floorItem.Item.MobDropped = true;
2903
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2904
                    floorItem.ItemID = b;
2905
                    floorItem.MapID = Owner.MapID;
2906-
                    
2906+
2907
                    floorItem.X = X;
2908
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2909
2910
                    floorItem.Type = MsgMapItem.Drop;
2911
                    floorItem.OnFloor = Time32.Now;
2912
                    floorItem.ItemColor = floorItem.Item.Color;
2913
                    floorItem.UID = MsgMapItem.FloorUID.Next;
2914
                    while (Map.Npcs.ContainsKey(floorItem.UID))
2915
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2916
                    Map.AddFloorItem(floorItem);
2917
                    SendScreenSpawn(floorItem);
2918
                }
2919
2920
            }
2921
            #endregion
2922
            #region WaterHades
2923
            if (Name == "WaterHades")
2924
            {
2925
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
2926
                {
2927
                    uint b = 0;
2928
                    uint ban = (uint)Kernel.Random.Next(1, 70);
2929
                    switch (ban)
2930
                    {
2931
                        case 1: b = 722723; break;
2932
                        case 2: b = 0; break;
2933
                        case 3: b = 722724; break;
2934
                        case 4: b = 0; break;
2935
                        case 5: b = 0; break;
2936
                        case 6: b = 722725; break;
2937
                        case 7: b = 0; break;
2938
                        case 8: b = 722732; break;
2939
                        case 9: b = 0; break;
2940
                        case 10: b = 0; break;
2941
                        case 11: b = 0; break;
2942
                        case 12: b = 722733; break;
2943
                        case 13: b = 0; break;
2944
                        case 14: b = 0; break;
2945
                        case 15: b = 722734; break;
2946
                        case 16: b = 0; break;
2947
                        case 17: b = 0; break;
2948
                        case 18: b = 722735; break;
2949
                        case 19: b = 0; break;
2950
                        case 20: b = 0; break;
2951
                        case 21: b = 722736; break;
2952
                        case 22: b = 0; break;
2953
                        case 23: b = 0; break;
2954
                        case 24: b = 722737; break;
2955
                        case 25: b = 0; break;
2956
                        case 26: b = 0; break;
2957
                        case 27: b = 722738; break;
2958
                        case 28: b = 0; break;
2959
                        case 29: b = 0; break;
2960
                        case 30: b = 722739; break;
2961
2962
                    }
2963
                    ushort X = Owner.X, Y = Owner.Y;
2964
                    Map Map = Kernel.Maps[Owner.MapID];
2965
                    if (Map.SelectCoordonates(ref X, ref Y))
2966
                    {
2967
                        MsgMapItem floorItem = new MsgMapItem(true);
2968
                        floorItem.Item = new MsgItemInfo(true);
2969
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
2970
                        floorItem.Item.ID = b;
2971
                        floorItem.Item.MobDropped = true;
2972
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
2973
                        floorItem.ItemID = b;
2974
                        floorItem.MapID = Owner.MapID;
2975-
                        
2975+
2976
                        floorItem.X = X;
2977
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
2978
2979
                        floorItem.Type = MsgMapItem.Drop;
2980
                        floorItem.OnFloor = Time32.Now;
2981
                        floorItem.ItemColor = floorItem.Item.Color;
2982
                        floorItem.UID = MsgMapItem.FloorUID.Next;
2983
                        while (Map.Npcs.ContainsKey(floorItem.UID))
2984
                            floorItem.UID = MsgMapItem.FloorUID.Next;
2985
                        Map.AddFloorItem(floorItem);
2986
                        SendScreenSpawn(floorItem);
2987
                    }
2988
                }
2989
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
2990
                {
2991
                    killer.SecoundQuestPoint += 2;
2992
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
2993
                }
2994
            }
2995
            if (Name == "WaterHades")
2996
            {
2997
2998
                uint b = 0;
2999
                uint ban = (uint)Kernel.Random.Next(1, 9);
3000
                switch (ban)
3001
                {
3002
                    case 1: b = 722739; break;
3003
                    case 2: b = 722738; break;
3004
                    case 3: b = 722737; break;
3005
                    case 4: b = 0; break;
3006
                    case 5: b = 722732; break;
3007
                    case 6: b = 722733; break;
3008
                    case 7: b = 722734; break;
3009
                    case 8: b = 722735; break;
3010
                    case 9: b = 722736; break;
3011
                }
3012
                ushort X = Owner.X, Y = Owner.Y;
3013
                Map Map = Kernel.Maps[Owner.MapID];
3014
                if (Map.SelectCoordonates(ref X, ref Y))
3015
                {
3016
                    MsgMapItem floorItem = new MsgMapItem(true);
3017
                    floorItem.Item = new MsgItemInfo(true);
3018
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3019
                    floorItem.Item.ID = b;
3020
                    floorItem.Item.MobDropped = true;
3021
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3022
                    floorItem.ItemID = b;
3023
                    floorItem.MapID = Owner.MapID;
3024-
                    
3024+
3025
                    floorItem.X = X;
3026
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3027
3028
                    floorItem.Type = MsgMapItem.Drop;
3029
                    floorItem.OnFloor = Time32.Now;
3030
                    floorItem.ItemColor = floorItem.Item.Color;
3031
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3032
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3033
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3034
                    Map.AddFloorItem(floorItem);
3035
                    SendScreenSpawn(floorItem);
3036
                }
3037
3038
            }
3039
            #endregion
3040
            #region EarthHades
3041
            if (Name == "EarthHades")
3042
            {
3043
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3044
                {
3045
                    uint b = 0;
3046
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3047
                    switch (ban)
3048
                    {
3049
                        case 1: b = 722723; break;
3050
                        case 2: b = 0; break;
3051
                        case 3: b = 722724; break;
3052
                        case 4: b = 0; break;
3053
                        case 5: b = 0; break;
3054
                        case 6: b = 722725; break;
3055
                        case 7: b = 0; break;
3056
                        case 8: b = 722732; break;
3057
                        case 9: b = 0; break;
3058
                        case 10: b = 0; break;
3059
                        case 11: b = 0; break;
3060
                        case 12: b = 722733; break;
3061
                        case 13: b = 0; break;
3062
                        case 14: b = 0; break;
3063
                        case 15: b = 722734; break;
3064
                        case 16: b = 0; break;
3065
                        case 17: b = 0; break;
3066
                        case 18: b = 722735; break;
3067
                        case 19: b = 0; break;
3068
                        case 20: b = 0; break;
3069
                        case 21: b = 722736; break;
3070
                        case 22: b = 0; break;
3071
                        case 23: b = 0; break;
3072
                        case 24: b = 722737; break;
3073
                        case 25: b = 0; break;
3074
                        case 26: b = 0; break;
3075
                        case 27: b = 722738; break;
3076
                        case 28: b = 0; break;
3077
                        case 29: b = 0; break;
3078
                        case 30: b = 722739; break;
3079
3080
                    }
3081
                    ushort X = Owner.X, Y = Owner.Y;
3082
                    Map Map = Kernel.Maps[Owner.MapID];
3083
                    if (Map.SelectCoordonates(ref X, ref Y))
3084
                    {
3085
                        MsgMapItem floorItem = new MsgMapItem(true);
3086
                        floorItem.Item = new MsgItemInfo(true);
3087
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3088
                        floorItem.Item.ID = b;
3089
                        floorItem.Item.MobDropped = true;
3090
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3091
                        floorItem.ItemID = b;
3092
                        floorItem.MapID = Owner.MapID;
3093-
                        
3093+
3094
                        floorItem.X = X;
3095
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3096
3097
                        floorItem.Type = MsgMapItem.Drop;
3098
                        floorItem.OnFloor = Time32.Now;
3099
                        floorItem.ItemColor = floorItem.Item.Color;
3100
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3101
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3102
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3103
                        Map.AddFloorItem(floorItem);
3104
                        SendScreenSpawn(floorItem);
3105
                    }
3106
                }
3107
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3108
                {
3109
                    killer.SecoundQuestPoint += 4;
3110
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3111
                }
3112
            }
3113
            if (Name == "EarthHades")
3114
            {
3115
3116
                uint b = 0;
3117
                uint ban = (uint)Kernel.Random.Next(1, 9);
3118
                switch (ban)
3119
                {
3120
                    case 1: b = 722739; break;
3121
                    case 2: b = 722738; break;
3122
                    case 3: b = 722737; break;
3123
                    case 4: b = 0; break;
3124
                    case 5: b = 722732; break;
3125
                    case 6: b = 722733; break;
3126
                    case 7: b = 722734; break;
3127
                    case 8: b = 722735; break;
3128
                    case 9: b = 722736; break;
3129
                }
3130
                ushort X = Owner.X, Y = Owner.Y;
3131
                Map Map = Kernel.Maps[Owner.MapID];
3132
                if (Map.SelectCoordonates(ref X, ref Y))
3133
                {
3134
                    MsgMapItem floorItem = new MsgMapItem(true);
3135
                    floorItem.Item = new MsgItemInfo(true);
3136
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3137
                    floorItem.Item.ID = b;
3138
                    floorItem.Item.MobDropped = true;
3139
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3140
                    floorItem.ItemID = b;
3141
                    floorItem.MapID = Owner.MapID;
3142-
                    
3142+
3143
                    floorItem.X = X;
3144
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3145
3146
                    floorItem.Type = MsgMapItem.Drop;
3147
                    floorItem.OnFloor = Time32.Now;
3148
                    floorItem.ItemColor = floorItem.Item.Color;
3149
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3150
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3151
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3152
                    Map.AddFloorItem(floorItem);
3153
                    SendScreenSpawn(floorItem);
3154
                }
3155
3156
            }
3157
            #endregion
3158
            #region HadesLord
3159
            if (Name == "HadesLord")
3160
            {
3161
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3162
                {
3163
                    uint b = 0;
3164
                    uint ban = (uint)Kernel.Random.Next(1, 6);
3165
                    switch (ban)
3166
                    {
3167
                        case 1: b = 722723; break;
3168
                        case 2: b = 0; break;
3169
                        case 3: b = 722724; break;
3170
                        case 4: b = 0; break;
3171
                        case 5: b = 0; break;
3172
                        case 6: b = 722725; break;
3173
                        case 7: b = 0; break;
3174
                        case 8: b = 722732; break;
3175
                        case 9: b = 0; break;
3176
                        case 10: b = 0; break;
3177
                        case 11: b = 0; break;
3178
                        case 12: b = 722733; break;
3179
                        case 13: b = 0; break;
3180
                        case 14: b = 0; break;
3181
                        case 15: b = 722734; break;
3182
                        case 16: b = 0; break;
3183
                        case 17: b = 0; break;
3184
                        case 18: b = 722735; break;
3185
                        case 19: b = 0; break;
3186
                        case 20: b = 0; break;
3187
                        case 21: b = 722736; break;
3188
                        case 22: b = 0; break;
3189
                        case 23: b = 0; break;
3190
                        case 24: b = 722737; break;
3191
                        case 25: b = 0; break;
3192
                        case 26: b = 0; break;
3193
                        case 27: b = 722738; break;
3194
                        case 28: b = 0; break;
3195
                        case 29: b = 0; break;
3196
                        case 30: b = 722739; break;
3197
3198
                    }
3199
                    ushort X = Owner.X, Y = Owner.Y;
3200
                    Map Map = Kernel.Maps[Owner.MapID];
3201
                    if (Map.SelectCoordonates(ref X, ref Y))
3202
                    {
3203
                        MsgMapItem floorItem = new MsgMapItem(true);
3204
                        floorItem.Item = new MsgItemInfo(true);
3205
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3206
                        floorItem.Item.ID = b;
3207
                        floorItem.Item.MobDropped = true;
3208
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3209
                        floorItem.ItemID = b;
3210
                        floorItem.MapID = Owner.MapID;
3211-
                        
3211+
3212
                        floorItem.X = X;
3213
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3214
3215
                        floorItem.Type = MsgMapItem.Drop;
3216
                        floorItem.OnFloor = Time32.Now;
3217
                        floorItem.ItemColor = floorItem.Item.Color;
3218
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3219
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3220
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3221
                        Map.AddFloorItem(floorItem);
3222
                        SendScreenSpawn(floorItem);
3223
                    }
3224
                }
3225
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3226
                {
3227
                    killer.SecoundQuestPoint += 500;
3228
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3229
                }
3230
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest6, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3231
                {
3232
                    ushort X = Owner.X, Y = Owner.Y;
3233
                    Map Map = Kernel.Maps[Owner.MapID];
3234
                    if (Map.SelectCoordonates(ref X, ref Y))
3235
                    {
3236
                        MsgMapItem floorItem = new MsgMapItem(true);
3237
                        floorItem.Item = new MsgItemInfo(true);
3238
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3239
                        floorItem.Item.ID = 722727;
3240
                        floorItem.Item.MobDropped = true;
3241
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3242
                        floorItem.ItemID = 722727;
3243
                        floorItem.MapID = Owner.MapID;
3244-
                        
3244+
3245
                        floorItem.X = X;
3246
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3247
3248
                        floorItem.Type = MsgMapItem.Drop;
3249
                        floorItem.OnFloor = Time32.Now;
3250
                        floorItem.ItemColor = floorItem.Item.Color;
3251
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3252
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3253
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3254
                        Map.AddFloorItem(floorItem);
3255
                        SendScreenSpawn(floorItem);
3256
                    }
3257
                }
3258
            }
3259
            if (Name == "HadesLord")
3260
            {
3261
3262
                uint b = 0;
3263
                uint ban = (uint)Kernel.Random.Next(1, 9);
3264
                switch (ban)
3265
                {
3266
                    case 1: b = 722739; break;
3267
                    case 2: b = 722738; break;
3268
                    case 3: b = 722737; break;
3269
                    case 4: b = 0; break;
3270
                    case 5: b = 722732; break;
3271
                    case 6: b = 722733; break;
3272
                    case 7: b = 722734; break;
3273
                    case 8: b = 722735; break;
3274
                    case 9: b = 722736; break;
3275
                }
3276
                ushort X = Owner.X, Y = Owner.Y;
3277
                Map Map = Kernel.Maps[Owner.MapID];
3278
                if (Map.SelectCoordonates(ref X, ref Y))
3279
                {
3280
                    MsgMapItem floorItem = new MsgMapItem(true);
3281
                    floorItem.Item = new MsgItemInfo(true);
3282
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3283
                    floorItem.Item.ID = b;
3284
                    floorItem.Item.MobDropped = true;
3285
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3286
                    floorItem.ItemID = b;
3287
                    floorItem.MapID = Owner.MapID;
3288-
                    
3288+
3289
                    floorItem.X = X;
3290
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3291
3292
                    floorItem.Type = MsgMapItem.Drop;
3293
                    floorItem.OnFloor = Time32.Now;
3294
                    floorItem.ItemColor = floorItem.Item.Color;
3295
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3296
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3297
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3298
                    Map.AddFloorItem(floorItem);
3299
                    SendScreenSpawn(floorItem);
3300
                }
3301
3302
            }
3303
            #endregion
3304
            #endregion
3305
            #region Bat
3306
            #region FuryBat
3307
            if (Name == "FuryBat")
3308
            {
3309
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3310
                {
3311
                    uint b = 0;
3312
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3313
                    switch (ban)
3314
                    {
3315
                        case 1: b = 722723; break;
3316
                        case 2: b = 0; break;
3317
                        case 3: b = 722724; break;
3318
                        case 4: b = 0; break;
3319
                        case 5: b = 0; break;
3320
                        case 6: b = 722725; break;
3321
                        case 7: b = 0; break;
3322
                        case 8: b = 722732; break;
3323
                        case 9: b = 0; break;
3324
                        case 10: b = 0; break;
3325
                        case 11: b = 0; break;
3326
                        case 12: b = 722733; break;
3327
                        case 13: b = 0; break;
3328
                        case 14: b = 0; break;
3329
                        case 15: b = 722734; break;
3330
                        case 16: b = 0; break;
3331
                        case 17: b = 0; break;
3332
                        case 18: b = 722735; break;
3333
                        case 19: b = 0; break;
3334
                        case 20: b = 0; break;
3335
                        case 21: b = 722736; break;
3336
                        case 22: b = 0; break;
3337
                        case 23: b = 0; break;
3338
                        case 24: b = 722737; break;
3339
                        case 25: b = 0; break;
3340
                        case 26: b = 0; break;
3341
                        case 27: b = 722738; break;
3342
                        case 28: b = 0; break;
3343
                        case 29: b = 0; break;
3344
                        case 30: b = 722739; break;
3345
3346
                    }
3347
                    ushort X = Owner.X, Y = Owner.Y;
3348
                    Map Map = Kernel.Maps[Owner.MapID];
3349
                    if (Map.SelectCoordonates(ref X, ref Y))
3350
                    {
3351
                        MsgMapItem floorItem = new MsgMapItem(true);
3352
                        floorItem.Item = new MsgItemInfo(true);
3353
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3354
                        floorItem.Item.ID = b;
3355
                        floorItem.Item.MobDropped = true;
3356
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3357
                        floorItem.ItemID = b;
3358
                        floorItem.MapID = Owner.MapID;
3359-
                        
3359+
3360
                        floorItem.X = X;
3361
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3362
3363
                        floorItem.Type = MsgMapItem.Drop;
3364
                        floorItem.OnFloor = Time32.Now;
3365
                        floorItem.ItemColor = floorItem.Item.Color;
3366
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3367
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3368
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3369
                        Map.AddFloorItem(floorItem);
3370
                        SendScreenSpawn(floorItem);
3371
                    }
3372
                }
3373
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3374
                {
3375
                    killer.SecoundQuestPoint += 1;
3376
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3377
                }
3378
            }
3379
            if (Name == "FuryBat")
3380
            {
3381
3382
                uint b = 0;
3383
                uint ban = (uint)Kernel.Random.Next(1, 9);
3384
                switch (ban)
3385
                {
3386
                    case 1: b = 722739; break;
3387
                    case 2: b = 722738; break;
3388
                    case 3: b = 722737; break;
3389
                    case 4: b = 0; break;
3390
                    case 5: b = 722732; break;
3391
                    case 6: b = 722733; break;
3392
                    case 7: b = 722734; break;
3393
                    case 8: b = 722735; break;
3394
                    case 9: b = 722736; break;
3395
                }
3396
                ushort X = Owner.X, Y = Owner.Y;
3397
                Map Map = Kernel.Maps[Owner.MapID];
3398
                if (Map.SelectCoordonates(ref X, ref Y))
3399
                {
3400
                    MsgMapItem floorItem = new MsgMapItem(true);
3401
                    floorItem.Item = new MsgItemInfo(true);
3402
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3403
                    floorItem.Item.ID = b;
3404
                    floorItem.Item.MobDropped = true;
3405
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3406
                    floorItem.ItemID = b;
3407
                    floorItem.MapID = Owner.MapID;
3408-
                    
3408+
3409
                    floorItem.X = X;
3410
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3411
3412
                    floorItem.Type = MsgMapItem.Drop;
3413
                    floorItem.OnFloor = Time32.Now;
3414
                    floorItem.ItemColor = floorItem.Item.Color;
3415
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3416
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3417
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3418
                    Map.AddFloorItem(floorItem);
3419
                    SendScreenSpawn(floorItem);
3420
                }
3421
3422
            }
3423
            #endregion
3424
            #region CruelBat
3425
            if (Name == "CruelBat")
3426
            {
3427
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3428
                {
3429
                    uint b = 0;
3430
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3431
                    switch (ban)
3432
                    {
3433
                        case 1: b = 722723; break;
3434
                        case 2: b = 0; break;
3435
                        case 3: b = 722724; break;
3436
                        case 4: b = 0; break;
3437
                        case 5: b = 0; break;
3438
                        case 6: b = 722725; break;
3439
                        case 7: b = 0; break;
3440
                        case 8: b = 722732; break;
3441
                        case 9: b = 0; break;
3442
                        case 10: b = 0; break;
3443
                        case 11: b = 0; break;
3444
                        case 12: b = 722733; break;
3445
                        case 13: b = 0; break;
3446
                        case 14: b = 0; break;
3447
                        case 15: b = 722734; break;
3448
                        case 16: b = 0; break;
3449
                        case 17: b = 0; break;
3450
                        case 18: b = 722735; break;
3451
                        case 19: b = 0; break;
3452
                        case 20: b = 0; break;
3453
                        case 21: b = 722736; break;
3454
                        case 22: b = 0; break;
3455
                        case 23: b = 0; break;
3456
                        case 24: b = 722737; break;
3457
                        case 25: b = 0; break;
3458
                        case 26: b = 0; break;
3459
                        case 27: b = 722738; break;
3460
                        case 28: b = 0; break;
3461
                        case 29: b = 0; break;
3462
                        case 30: b = 722739; break;
3463
3464
                    }
3465
                    ushort X = Owner.X, Y = Owner.Y;
3466
                    Map Map = Kernel.Maps[Owner.MapID];
3467
                    if (Map.SelectCoordonates(ref X, ref Y))
3468
                    {
3469
                        MsgMapItem floorItem = new MsgMapItem(true);
3470
                        floorItem.Item = new MsgItemInfo(true);
3471
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3472
                        floorItem.Item.ID = b;
3473
                        floorItem.Item.MobDropped = true;
3474
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3475
                        floorItem.ItemID = b;
3476
                        floorItem.MapID = Owner.MapID;
3477-
                        
3477+
3478
                        floorItem.X = X;
3479
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3480
3481
                        floorItem.Type = MsgMapItem.Drop;
3482
                        floorItem.OnFloor = Time32.Now;
3483
                        floorItem.ItemColor = floorItem.Item.Color;
3484
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3485
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3486
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3487
                        Map.AddFloorItem(floorItem);
3488
                        SendScreenSpawn(floorItem);
3489
                    }
3490
                }
3491
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3492
                {
3493
                    killer.SecoundQuestPoint += 2;
3494
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3495
                }
3496
            }
3497
            if (Name == "CruelBat")
3498
            {
3499
3500
                uint b = 0;
3501
                uint ban = (uint)Kernel.Random.Next(1, 9);
3502
                switch (ban)
3503
                {
3504
                    case 1: b = 722739; break;
3505
                    case 2: b = 722738; break;
3506
                    case 3: b = 722737; break;
3507
                    case 4: b = 0; break;
3508
                    case 5: b = 722732; break;
3509
                    case 6: b = 722733; break;
3510
                    case 7: b = 722734; break;
3511
                    case 8: b = 722735; break;
3512
                    case 9: b = 722736; break;
3513
                }
3514
                ushort X = Owner.X, Y = Owner.Y;
3515
                Map Map = Kernel.Maps[Owner.MapID];
3516
                if (Map.SelectCoordonates(ref X, ref Y))
3517
                {
3518
                    MsgMapItem floorItem = new MsgMapItem(true);
3519
                    floorItem.Item = new MsgItemInfo(true);
3520
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3521
                    floorItem.Item.ID = b;
3522
                    floorItem.Item.MobDropped = true;
3523
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3524
                    floorItem.ItemID = b;
3525
                    floorItem.MapID = Owner.MapID;
3526-
                    
3526+
3527
                    floorItem.X = X;
3528
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3529
3530
                    floorItem.Type = MsgMapItem.Drop;
3531
                    floorItem.OnFloor = Time32.Now;
3532
                    floorItem.ItemColor = floorItem.Item.Color;
3533
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3534
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3535
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3536
                    Map.AddFloorItem(floorItem);
3537
                    SendScreenSpawn(floorItem);
3538
                }
3539
3540
            }
3541
            #endregion
3542
            #region ViciousBat
3543
            if (Name == "ViciousBat")
3544
            {
3545
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3546
                {
3547
                    uint b = 0;
3548
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3549
                    switch (ban)
3550
                    {
3551
                        case 1: b = 722723; break;
3552
                        case 2: b = 0; break;
3553
                        case 3: b = 722724; break;
3554
                        case 4: b = 0; break;
3555
                        case 5: b = 0; break;
3556
                        case 6: b = 722725; break;
3557
                        case 7: b = 0; break;
3558
                        case 8: b = 722732; break;
3559
                        case 9: b = 0; break;
3560
                        case 10: b = 0; break;
3561
                        case 11: b = 0; break;
3562
                        case 12: b = 722733; break;
3563
                        case 13: b = 0; break;
3564
                        case 14: b = 0; break;
3565
                        case 15: b = 722734; break;
3566
                        case 16: b = 0; break;
3567
                        case 17: b = 0; break;
3568
                        case 18: b = 722735; break;
3569
                        case 19: b = 0; break;
3570
                        case 20: b = 0; break;
3571
                        case 21: b = 722736; break;
3572
                        case 22: b = 0; break;
3573
                        case 23: b = 0; break;
3574
                        case 24: b = 722737; break;
3575
                        case 25: b = 0; break;
3576
                        case 26: b = 0; break;
3577
                        case 27: b = 722738; break;
3578
                        case 28: b = 0; break;
3579
                        case 29: b = 0; break;
3580
                        case 30: b = 722739; break;
3581
3582
                    }
3583
                    ushort X = Owner.X, Y = Owner.Y;
3584
                    Map Map = Kernel.Maps[Owner.MapID];
3585
                    if (Map.SelectCoordonates(ref X, ref Y))
3586
                    {
3587
                        MsgMapItem floorItem = new MsgMapItem(true);
3588
                        floorItem.Item = new MsgItemInfo(true);
3589
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3590
                        floorItem.Item.ID = b;
3591
                        floorItem.Item.MobDropped = true;
3592
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3593
                        floorItem.ItemID = b;
3594
                        floorItem.MapID = Owner.MapID;
3595-
                        
3595+
3596
                        floorItem.X = X;
3597
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3598
3599
                        floorItem.Type = MsgMapItem.Drop;
3600
                        floorItem.OnFloor = Time32.Now;
3601
                        floorItem.ItemColor = floorItem.Item.Color;
3602
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3603
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3604
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3605
                        Map.AddFloorItem(floorItem);
3606
                        SendScreenSpawn(floorItem);
3607
                    }
3608
                }
3609
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3610
                {
3611
                    killer.SecoundQuestPoint += 4;
3612
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3613
                }
3614
            }
3615
            if (Name == "ViciousBat")
3616
            {
3617
3618
                uint b = 0;
3619
                uint ban = (uint)Kernel.Random.Next(1, 9);
3620
                switch (ban)
3621
                {
3622
                    case 1: b = 722739; break;
3623
                    case 2: b = 722738; break;
3624
                    case 3: b = 722737; break;
3625
                    case 4: b = 0; break;
3626
                    case 5: b = 722732; break;
3627
                    case 6: b = 722733; break;
3628
                    case 7: b = 722734; break;
3629
                    case 8: b = 722735; break;
3630
                    case 9: b = 722736; break;
3631
                }
3632
                ushort X = Owner.X, Y = Owner.Y;
3633
                Map Map = Kernel.Maps[Owner.MapID];
3634
                if (Map.SelectCoordonates(ref X, ref Y))
3635
                {
3636
                    MsgMapItem floorItem = new MsgMapItem(true);
3637
                    floorItem.Item = new MsgItemInfo(true);
3638
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3639
                    floorItem.Item.ID = b;
3640
                    floorItem.Item.MobDropped = true;
3641
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3642
                    floorItem.ItemID = b;
3643
                    floorItem.MapID = Owner.MapID;
3644-
                    
3644+
3645
                    floorItem.X = X;
3646
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3647
3648
                    floorItem.Type = MsgMapItem.Drop;
3649
                    floorItem.OnFloor = Time32.Now;
3650
                    floorItem.ItemColor = floorItem.Item.Color;
3651
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3652
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3653
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3654
                    Map.AddFloorItem(floorItem);
3655
                    SendScreenSpawn(floorItem);
3656
                }
3657
3658
            }
3659
            #endregion
3660
            #region DemonBat
3661
            if (Name == "DemonBat")
3662
            {
3663
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3664
                {
3665
                    uint b = 0;
3666
                    uint ban = (uint)Kernel.Random.Next(1, 6);
3667
                    switch (ban)
3668
                    {
3669
                        case 1: b = 722723; break;
3670
                        case 2: b = 0; break;
3671
                        case 3: b = 722724; break;
3672
                        case 4: b = 0; break;
3673
                        case 5: b = 0; break;
3674
                        case 6: b = 722725; break;
3675
                        case 7: b = 0; break;
3676
                        case 8: b = 722732; break;
3677
                        case 9: b = 0; break;
3678
                        case 10: b = 0; break;
3679
                        case 11: b = 0; break;
3680
                        case 12: b = 722733; break;
3681
                        case 13: b = 0; break;
3682
                        case 14: b = 0; break;
3683
                        case 15: b = 722734; break;
3684
                        case 16: b = 0; break;
3685
                        case 17: b = 0; break;
3686
                        case 18: b = 722735; break;
3687
                        case 19: b = 0; break;
3688
                        case 20: b = 0; break;
3689
                        case 21: b = 722736; break;
3690
                        case 22: b = 0; break;
3691
                        case 23: b = 0; break;
3692
                        case 24: b = 722737; break;
3693
                        case 25: b = 0; break;
3694
                        case 26: b = 0; break;
3695
                        case 27: b = 722738; break;
3696
                        case 28: b = 0; break;
3697
                        case 29: b = 0; break;
3698
                        case 30: b = 722739; break;
3699
3700
                    }
3701
                    ushort X = Owner.X, Y = Owner.Y;
3702
                    Map Map = Kernel.Maps[Owner.MapID];
3703
                    if (Map.SelectCoordonates(ref X, ref Y))
3704
                    {
3705
                        MsgMapItem floorItem = new MsgMapItem(true);
3706
                        floorItem.Item = new MsgItemInfo(true);
3707
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3708
                        floorItem.Item.ID = b;
3709
                        floorItem.Item.MobDropped = true;
3710
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3711
                        floorItem.ItemID = b;
3712
                        floorItem.MapID = Owner.MapID;
3713-
                        
3713+
3714
                        floorItem.X = X;
3715
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3716
3717
                        floorItem.Type = MsgMapItem.Drop;
3718
                        floorItem.OnFloor = Time32.Now;
3719
                        floorItem.ItemColor = floorItem.Item.Color;
3720
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3721
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3722
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3723
                        Map.AddFloorItem(floorItem);
3724
                        SendScreenSpawn(floorItem);
3725
                    }
3726
                }
3727
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3728
                {
3729
                    killer.SecoundQuestPoint += 500;
3730
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3731
                }
3732
            }
3733
            if (Name == "DemonBat")
3734
            {
3735
3736
                uint b = 0;
3737
                uint ban = (uint)Kernel.Random.Next(1, 9);
3738
                switch (ban)
3739
                {
3740
                    case 1: b = 722739; break;
3741
                    case 2: b = 722738; break;
3742
                    case 3: b = 722737; break;
3743
                    case 4: b = 0; break;
3744
                    case 5: b = 722732; break;
3745
                    case 6: b = 722733; break;
3746
                    case 7: b = 722734; break;
3747
                    case 8: b = 722735; break;
3748
                    case 9: b = 722736; break;
3749
                }
3750
                ushort X = Owner.X, Y = Owner.Y;
3751
                Map Map = Kernel.Maps[Owner.MapID];
3752
                if (Map.SelectCoordonates(ref X, ref Y))
3753
                {
3754
                    MsgMapItem floorItem = new MsgMapItem(true);
3755
                    floorItem.Item = new MsgItemInfo(true);
3756
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3757
                    floorItem.Item.ID = b;
3758
                    floorItem.Item.MobDropped = true;
3759
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3760
                    floorItem.ItemID = b;
3761
                    floorItem.MapID = Owner.MapID;
3762-
                  
3762+
3763
                    floorItem.X = X;
3764
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3765
3766
                    floorItem.Type = MsgMapItem.Drop;
3767
                    floorItem.OnFloor = Time32.Now;
3768
                    floorItem.ItemColor = floorItem.Item.Color;
3769
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3770
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3771
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3772
                    Map.AddFloorItem(floorItem);
3773
                    SendScreenSpawn(floorItem);
3774
                }
3775
3776
            }
3777
            #endregion
3778
            #endregion
3779
            #region Skeleton
3780
            #region BoneSkeleton
3781
            if (Name == "BoneSkeleton")
3782
            {
3783
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3784
                {
3785
                    uint b = 0;
3786
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3787
                    switch (ban)
3788
                    {
3789
                        case 1: b = 722723; break;
3790
                        case 2: b = 0; break;
3791
                        case 3: b = 722724; break;
3792
                        case 4: b = 0; break;
3793
                        case 5: b = 0; break;
3794
                        case 6: b = 722725; break;
3795
                        case 7: b = 0; break;
3796
                        case 8: b = 722732; break;
3797
                        case 9: b = 0; break;
3798
                        case 10: b = 0; break;
3799
                        case 11: b = 0; break;
3800
                        case 12: b = 722733; break;
3801
                        case 13: b = 0; break;
3802
                        case 14: b = 0; break;
3803
                        case 15: b = 722734; break;
3804
                        case 16: b = 0; break;
3805
                        case 17: b = 0; break;
3806
                        case 18: b = 722735; break;
3807
                        case 19: b = 0; break;
3808
                        case 20: b = 0; break;
3809
                        case 21: b = 722736; break;
3810
                        case 22: b = 0; break;
3811
                        case 23: b = 0; break;
3812
                        case 24: b = 722737; break;
3813
                        case 25: b = 0; break;
3814
                        case 26: b = 0; break;
3815
                        case 27: b = 722738; break;
3816
                        case 28: b = 0; break;
3817
                        case 29: b = 0; break;
3818
                        case 30: b = 722739; break;
3819
3820
                    }
3821
                    ushort X = Owner.X, Y = Owner.Y;
3822
                    Map Map = Kernel.Maps[Owner.MapID];
3823
                    if (Map.SelectCoordonates(ref X, ref Y))
3824
                    {
3825
                        MsgMapItem floorItem = new MsgMapItem(true);
3826
                        floorItem.Item = new MsgItemInfo(true);
3827
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3828
                        floorItem.Item.ID = b;
3829
                        floorItem.Item.MobDropped = true;
3830
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3831
                        floorItem.ItemID = b;
3832
                        floorItem.MapID = Owner.MapID;
3833-
                       
3833+
3834
                        floorItem.X = X;
3835
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3836
3837
                        floorItem.Type = MsgMapItem.Drop;
3838
                        floorItem.OnFloor = Time32.Now;
3839
                        floorItem.ItemColor = floorItem.Item.Color;
3840
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3841
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3842
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3843
                        Map.AddFloorItem(floorItem);
3844
                        SendScreenSpawn(floorItem);
3845
                    }
3846
                }
3847
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3848
                {
3849
                    killer.SecoundQuestPoint += 1;
3850
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3851
                }
3852
            }
3853
            if (Name == "BoneSkeleton")
3854
            {
3855
3856
                uint b = 0;
3857
                uint ban = (uint)Kernel.Random.Next(1, 9);
3858
                switch (ban)
3859
                {
3860
                    case 1: b = 722739; break;
3861
                    case 2: b = 722738; break;
3862
                    case 3: b = 722737; break;
3863
                    case 4: b = 0; break;
3864
                    case 5: b = 722732; break;
3865
                    case 6: b = 722733; break;
3866
                    case 7: b = 722734; break;
3867
                    case 8: b = 722735; break;
3868
                    case 9: b = 722736; break;
3869
                }
3870
                ushort X = Owner.X, Y = Owner.Y;
3871
                Map Map = Kernel.Maps[Owner.MapID];
3872
                if (Map.SelectCoordonates(ref X, ref Y))
3873
                {
3874
                    MsgMapItem floorItem = new MsgMapItem(true);
3875
                    floorItem.Item = new MsgItemInfo(true);
3876
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3877
                    floorItem.Item.ID = b;
3878
                    floorItem.Item.MobDropped = true;
3879
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3880
                    floorItem.ItemID = b;
3881
                    floorItem.MapID = Owner.MapID;
3882-
                   
3882+
3883
                    floorItem.X = X;
3884
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3885
3886
                    floorItem.Type = MsgMapItem.Drop;
3887
                    floorItem.OnFloor = Time32.Now;
3888
                    floorItem.ItemColor = floorItem.Item.Color;
3889
                    floorItem.UID = MsgMapItem.FloorUID.Next;
3890
                    while (Map.Npcs.ContainsKey(floorItem.UID))
3891
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3892
                    Map.AddFloorItem(floorItem);
3893
                    SendScreenSpawn(floorItem);
3894
                }
3895
3896
            }
3897
            #endregion
3898
            #region LameSkeleton
3899
            if (Name == "LameSkeleton")
3900
            {
3901
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
3902
                {
3903
                    uint b = 0;
3904
                    uint ban = (uint)Kernel.Random.Next(1, 70);
3905
                    switch (ban)
3906
                    {
3907
                        case 1: b = 722723; break;
3908
                        case 2: b = 0; break;
3909
                        case 3: b = 722724; break;
3910
                        case 4: b = 0; break;
3911
                        case 5: b = 0; break;
3912
                        case 6: b = 722725; break;
3913
                        case 7: b = 0; break;
3914
                        case 8: b = 722732; break;
3915
                        case 9: b = 0; break;
3916
                        case 10: b = 0; break;
3917
                        case 11: b = 0; break;
3918
                        case 12: b = 722733; break;
3919
                        case 13: b = 0; break;
3920
                        case 14: b = 0; break;
3921
                        case 15: b = 722734; break;
3922
                        case 16: b = 0; break;
3923
                        case 17: b = 0; break;
3924
                        case 18: b = 722735; break;
3925
                        case 19: b = 0; break;
3926
                        case 20: b = 0; break;
3927
                        case 21: b = 722736; break;
3928
                        case 22: b = 0; break;
3929
                        case 23: b = 0; break;
3930
                        case 24: b = 722737; break;
3931
                        case 25: b = 0; break;
3932
                        case 26: b = 0; break;
3933
                        case 27: b = 722738; break;
3934
                        case 28: b = 0; break;
3935
                        case 29: b = 0; break;
3936
                        case 30: b = 722739; break;
3937
3938
                    }
3939
                    ushort X = Owner.X, Y = Owner.Y;
3940
                    Map Map = Kernel.Maps[Owner.MapID];
3941
                    if (Map.SelectCoordonates(ref X, ref Y))
3942
                    {
3943
                        MsgMapItem floorItem = new MsgMapItem(true);
3944
                        floorItem.Item = new MsgItemInfo(true);
3945
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3946
                        floorItem.Item.ID = b;
3947
                        floorItem.Item.MobDropped = true;
3948
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3949
                        floorItem.ItemID = b;
3950
                        floorItem.MapID = Owner.MapID;
3951-
                        
3951+
3952
                        floorItem.X = X;
3953
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
3954
3955
                        floorItem.Type = MsgMapItem.Drop;
3956
                        floorItem.OnFloor = Time32.Now;
3957
                        floorItem.ItemColor = floorItem.Item.Color;
3958
                        floorItem.UID = MsgMapItem.FloorUID.Next;
3959
                        while (Map.Npcs.ContainsKey(floorItem.UID))
3960
                            floorItem.UID = MsgMapItem.FloorUID.Next;
3961
                        Map.AddFloorItem(floorItem);
3962
                        SendScreenSpawn(floorItem);
3963
                    }
3964
                }
3965
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
3966
                {
3967
                    killer.SecoundQuestPoint += 2;
3968
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
3969
                }
3970
            }
3971
            if (Name == "LameSkeleton")
3972
            {
3973
3974
                uint b = 0;
3975
                uint ban = (uint)Kernel.Random.Next(1, 9);
3976
                switch (ban)
3977
                {
3978
                    case 1: b = 722739; break;
3979
                    case 2: b = 722738; break;
3980
                    case 3: b = 722737; break;
3981
                    case 4: b = 0; break;
3982
                    case 5: b = 722732; break;
3983
                    case 6: b = 722733; break;
3984
                    case 7: b = 722734; break;
3985
                    case 8: b = 722735; break;
3986
                    case 9: b = 722736; break;
3987
                }
3988
                ushort X = Owner.X, Y = Owner.Y;
3989
                Map Map = Kernel.Maps[Owner.MapID];
3990
                if (Map.SelectCoordonates(ref X, ref Y))
3991
                {
3992
                    MsgMapItem floorItem = new MsgMapItem(true);
3993
                    floorItem.Item = new MsgItemInfo(true);
3994
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
3995
                    floorItem.Item.ID = b;
3996
                    floorItem.Item.MobDropped = true;
3997
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
3998
                    floorItem.ItemID = b;
3999
                    floorItem.MapID = Owner.MapID;
4000-
                    
4000+
4001
                    floorItem.X = X;
4002
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4003
4004
                    floorItem.Type = MsgMapItem.Drop;
4005
                    floorItem.OnFloor = Time32.Now;
4006
                    floorItem.ItemColor = floorItem.Item.Color;
4007
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4008
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4009
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4010
                    Map.AddFloorItem(floorItem);
4011
                    SendScreenSpawn(floorItem);
4012
                }
4013
4014
            }
4015
            #endregion
4016
            #region CarrionSkeleton
4017
            if (Name == "CarrionSkeleton")
4018
            {
4019
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4020
                {
4021
                    uint b = 0;
4022
                    uint ban = (uint)Kernel.Random.Next(1, 70);
4023
                    switch (ban)
4024
                    {
4025
                        case 1: b = 722723; break;
4026
                        case 2: b = 0; break;
4027
                        case 3: b = 722724; break;
4028
                        case 4: b = 0; break;
4029
                        case 5: b = 0; break;
4030
                        case 6: b = 722725; break;
4031
                        case 7: b = 0; break;
4032
                        case 8: b = 722732; break;
4033
                        case 9: b = 0; break;
4034
                        case 10: b = 0; break;
4035
                        case 11: b = 0; break;
4036
                        case 12: b = 722733; break;
4037
                        case 13: b = 0; break;
4038
                        case 14: b = 0; break;
4039
                        case 15: b = 722734; break;
4040
                        case 16: b = 0; break;
4041
                        case 17: b = 0; break;
4042
                        case 18: b = 722735; break;
4043
                        case 19: b = 0; break;
4044
                        case 20: b = 0; break;
4045
                        case 21: b = 722736; break;
4046
                        case 22: b = 0; break;
4047
                        case 23: b = 0; break;
4048
                        case 24: b = 722737; break;
4049
                        case 25: b = 0; break;
4050
                        case 26: b = 0; break;
4051
                        case 27: b = 722738; break;
4052
                        case 28: b = 0; break;
4053
                        case 29: b = 0; break;
4054
                        case 30: b = 722739; break;
4055
4056
                    }
4057
                    ushort X = Owner.X, Y = Owner.Y;
4058
                    Map Map = Kernel.Maps[Owner.MapID];
4059
                    if (Map.SelectCoordonates(ref X, ref Y))
4060
                    {
4061
                        MsgMapItem floorItem = new MsgMapItem(true);
4062
                        floorItem.Item = new MsgItemInfo(true);
4063
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4064
                        floorItem.Item.ID = b;
4065
                        floorItem.Item.MobDropped = true;
4066
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4067
                        floorItem.ItemID = b;
4068
                        floorItem.MapID = Owner.MapID;
4069-
                        
4069+
4070
                        floorItem.X = X;
4071
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4072
4073
                        floorItem.Type = MsgMapItem.Drop;
4074
                        floorItem.OnFloor = Time32.Now;
4075
                        floorItem.ItemColor = floorItem.Item.Color;
4076
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4077
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4078
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4079
                        Map.AddFloorItem(floorItem);
4080
                        SendScreenSpawn(floorItem);
4081
                    }
4082
                }
4083
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4084
                {
4085
                    killer.SecoundQuestPoint += 4;
4086
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4087
                }
4088
            }
4089
            if (Name == "CarrionSkeleton")
4090
            {
4091
4092
                uint b = 0;
4093
                uint ban = (uint)Kernel.Random.Next(1, 9);
4094
                switch (ban)
4095
                {
4096
                    case 1: b = 722739; break;
4097
                    case 2: b = 722738; break;
4098
                    case 3: b = 722737; break;
4099
                    case 4: b = 0; break;
4100
                    case 5: b = 722732; break;
4101
                    case 6: b = 722733; break;
4102
                    case 7: b = 722734; break;
4103
                    case 8: b = 722735; break;
4104
                    case 9: b = 722736; break;
4105
                }
4106
                ushort X = Owner.X, Y = Owner.Y;
4107
                Map Map = Kernel.Maps[Owner.MapID];
4108
                if (Map.SelectCoordonates(ref X, ref Y))
4109
                {
4110
                    MsgMapItem floorItem = new MsgMapItem(true);
4111
                    floorItem.Item = new MsgItemInfo(true);
4112
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4113
                    floorItem.Item.ID = b;
4114
                    floorItem.Item.MobDropped = true;
4115
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4116
                    floorItem.ItemID = b;
4117
                    floorItem.MapID = Owner.MapID;
4118-
                   
4118+
4119
                    floorItem.X = X;
4120
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4121
4122
                    floorItem.Type = MsgMapItem.Drop;
4123
                    floorItem.OnFloor = Time32.Now;
4124
                    floorItem.ItemColor = floorItem.Item.Color;
4125
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4126
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4127
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4128
                    Map.AddFloorItem(floorItem);
4129
                    SendScreenSpawn(floorItem);
4130
                }
4131
4132
            }
4133
            #endregion
4134
            #region FurySkeleton
4135
            if (Name == "FurySkeleton")
4136
            {
4137
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4138
                {
4139
                    uint b = 0;
4140
                    uint ban = (uint)Kernel.Random.Next(1, 29);
4141
                    switch (ban)
4142
                    {
4143
                        case 1: b = 722723; break;
4144
                        case 2: b = 0; break;
4145
                        case 3: b = 722724; break;
4146
                        case 4: b = 0; break;
4147
                        case 5: b = 0; break;
4148
                        case 6: b = 722725; break;
4149
                        case 7: b = 0; break;
4150
                        case 8: b = 722732; break;
4151
                        case 9: b = 0; break;
4152
                        case 10: b = 0; break;
4153
                        case 11: b = 0; break;
4154
                        case 12: b = 722733; break;
4155
                        case 13: b = 0; break;
4156
                        case 14: b = 0; break;
4157
                        case 15: b = 722734; break;
4158
                        case 16: b = 0; break;
4159
                        case 17: b = 0; break;
4160
                        case 18: b = 722735; break;
4161
                        case 19: b = 0; break;
4162
                        case 20: b = 0; break;
4163
                        case 21: b = 722736; break;
4164
                        case 22: b = 0; break;
4165
                        case 23: b = 0; break;
4166
                        case 24: b = 722737; break;
4167
                        case 25: b = 0; break;
4168
                        case 26: b = 0; break;
4169
                        case 27: b = 722738; break;
4170
                        case 28: b = 0; break;
4171
                        case 29: b = 0; break;
4172
                        case 30: b = 722739; break;
4173
4174
                    }
4175
                    ushort X = Owner.X, Y = Owner.Y;
4176
                    Map Map = Kernel.Maps[Owner.MapID];
4177
                    if (Map.SelectCoordonates(ref X, ref Y))
4178
                    {
4179
                        MsgMapItem floorItem = new MsgMapItem(true);
4180
                        floorItem.Item = new MsgItemInfo(true);
4181
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4182
                        floorItem.Item.ID = b;
4183
                        floorItem.Item.MobDropped = true;
4184
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4185
                        floorItem.ItemID = b;
4186
                        floorItem.MapID = Owner.MapID;
4187-
                        
4187+
4188
                        floorItem.X = X;
4189
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4190
4191
                        floorItem.Type = MsgMapItem.Drop;
4192
                        floorItem.OnFloor = Time32.Now;
4193
                        floorItem.ItemColor = floorItem.Item.Color;
4194
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4195
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4196
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4197
                        Map.AddFloorItem(floorItem);
4198
                        SendScreenSpawn(floorItem);
4199
                    }
4200
                }
4201
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4202
                {
4203
                    killer.SecoundQuestPoint += 500;
4204
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4205
                }
4206
            }
4207
            if (Name == "FurySkeleton")
4208
            {
4209
4210
                uint b = 0;
4211
                uint ban = (uint)Kernel.Random.Next(1, 9);
4212
                switch (ban)
4213
                {
4214
                    case 1: b = 722739; break;
4215
                    case 2: b = 722738; break;
4216
                    case 3: b = 722737; break;
4217
                    case 4: b = 0; break;
4218
                    case 5: b = 722732; break;
4219
                    case 6: b = 722733; break;
4220
                    case 7: b = 722734; break;
4221
                    case 8: b = 722735; break;
4222
                    case 9: b = 722736; break;
4223
                }
4224
                ushort X = Owner.X, Y = Owner.Y;
4225
                Map Map = Kernel.Maps[Owner.MapID];
4226
                if (Map.SelectCoordonates(ref X, ref Y))
4227
                {
4228
                    MsgMapItem floorItem = new MsgMapItem(true);
4229
                    floorItem.Item = new MsgItemInfo(true);
4230
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4231
                    floorItem.Item.ID = b;
4232
                    floorItem.Item.MobDropped = true;
4233
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4234
                    floorItem.ItemID = b;
4235
                    floorItem.MapID = Owner.MapID;
4236-
                    
4236+
4237
                    floorItem.X = X;
4238
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4239
4240
                    floorItem.Type = MsgMapItem.Drop;
4241
                    floorItem.OnFloor = Time32.Now;
4242
                    floorItem.ItemColor = floorItem.Item.Color;
4243
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4244
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4245
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4246
                    Map.AddFloorItem(floorItem);
4247
                    SendScreenSpawn(floorItem);
4248
                }
4249
4250
            }
4251
            #endregion
4252
            #endregion
4253
            #region Beast
4254
            #region AngryBeast
4255
            if (Name == "AngryBeast")
4256
            {
4257
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4258
                {
4259
                    uint b = 0;
4260
                    uint ban = (uint)Kernel.Random.Next(1, 30);
4261
                    switch (ban)
4262
                    {
4263
                        case 1: b = 722723; break;
4264
                        case 2: b = 0; break;
4265
                        case 3: b = 722724; break;
4266
                        case 4: b = 0; break;
4267
                        case 5: b = 0; break;
4268
                        case 6: b = 722725; break;
4269
                        case 7: b = 0; break;
4270
                        case 8: b = 722732; break;
4271
                        case 9: b = 0; break;
4272
                        case 10: b = 0; break;
4273
                        case 11: b = 0; break;
4274
                        case 12: b = 722733; break;
4275
                        case 13: b = 0; break;
4276
                        case 14: b = 0; break;
4277
                        case 15: b = 722734; break;
4278
                        case 16: b = 0; break;
4279
                        case 17: b = 0; break;
4280
                        case 18: b = 722735; break;
4281
                        case 19: b = 0; break;
4282
                        case 20: b = 0; break;
4283
                        case 21: b = 722736; break;
4284
                        case 22: b = 0; break;
4285
                        case 23: b = 0; break;
4286
                        case 24: b = 722737; break;
4287
                        case 25: b = 0; break;
4288
                        case 26: b = 0; break;
4289
                        case 27: b = 722738; break;
4290
                        case 28: b = 0; break;
4291
                        case 29: b = 0; break;
4292
                        case 30: b = 722739; break;
4293
4294
                    }
4295
                    ushort X = Owner.X, Y = Owner.Y;
4296
                    Map Map = Kernel.Maps[Owner.MapID];
4297
                    if (Map.SelectCoordonates(ref X, ref Y))
4298
                    {
4299
                        MsgMapItem floorItem = new MsgMapItem(true);
4300
                        floorItem.Item = new MsgItemInfo(true);
4301
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4302
                        floorItem.Item.ID = b;
4303
                        floorItem.Item.MobDropped = true;
4304
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4305
                        floorItem.ItemID = b;
4306
                        floorItem.MapID = Owner.MapID;
4307
                        floorItem.MapObjType = MapObjectType.Item;
4308
                        floorItem.X = X;
4309
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4310
                        //floorItem.Owner = killer.Owner;
4311
                        floorItem.Type = MsgMapItem.Drop;
4312
                        floorItem.OnFloor = Time32.Now;
4313
                        floorItem.ItemColor = floorItem.Item.Color;
4314
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4315
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4316
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4317
                        Map.AddFloorItem(floorItem);
4318
                        SendScreenSpawn(floorItem);
4319
                    }
4320
                }
4321
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4322
                {
4323
                    killer.SecoundQuestPoint += 1;
4324
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4325
                }
4326
            }
4327
            if (Name == "AngryBeast")
4328
            {
4329
4330
                uint b = 0;
4331
                uint ban = (uint)Kernel.Random.Next(1, 9);
4332
                switch (ban)
4333
                {
4334
                    case 1: b = 722739; break;
4335
                    case 2: b = 722738; break;
4336
                    case 3: b = 722737; break;
4337
                    case 4: b = 0; break;
4338
                    case 5: b = 722732; break;
4339
                    case 6: b = 722733; break;
4340
                    case 7: b = 722734; break;
4341
                    case 8: b = 722735; break;
4342
                    case 9: b = 722736; break;
4343
                }
4344
                ushort X = Owner.X, Y = Owner.Y;
4345
                Map Map = Kernel.Maps[Owner.MapID];
4346
                if (Map.SelectCoordonates(ref X, ref Y))
4347
                {
4348
                    MsgMapItem floorItem = new MsgMapItem(true);
4349
                    floorItem.Item = new MsgItemInfo(true);
4350
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4351
                    floorItem.Item.ID = b;
4352
                    floorItem.Item.MobDropped = true;
4353
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4354
                    floorItem.ItemID = b;
4355
                    floorItem.MapID = Owner.MapID;
4356-
                    
4356+
4357
                    floorItem.X = X;
4358
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4359
4360
                    floorItem.Type = MsgMapItem.Drop;
4361
                    floorItem.OnFloor = Time32.Now;
4362
                    floorItem.ItemColor = floorItem.Item.Color;
4363
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4364
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4365
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4366
                    Map.AddFloorItem(floorItem);
4367
                    SendScreenSpawn(floorItem);
4368
                }
4369
4370
            }
4371
            #endregion
4372
            #region SensitiveBeast
4373
            if (Name == "SensitiveBeast")
4374
            {
4375
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4376
                {
4377
                    uint b = 0;
4378
                    uint ban = (uint)Kernel.Random.Next(1, 30);
4379
                    switch (ban)
4380
                    {
4381
                        case 1: b = 722723; break;
4382
                        case 2: b = 0; break;
4383
                        case 3: b = 722724; break;
4384
                        case 4: b = 0; break;
4385
                        case 5: b = 0; break;
4386
                        case 6: b = 722725; break;
4387
                        case 7: b = 0; break;
4388
                        case 8: b = 722732; break;
4389
                        case 9: b = 0; break;
4390
                        case 10: b = 0; break;
4391
                        case 11: b = 0; break;
4392
                        case 12: b = 722733; break;
4393
                        case 13: b = 0; break;
4394
                        case 14: b = 0; break;
4395
                        case 15: b = 722734; break;
4396
                        case 16: b = 0; break;
4397
                        case 17: b = 0; break;
4398
                        case 18: b = 722735; break;
4399
                        case 19: b = 0; break;
4400
                        case 20: b = 0; break;
4401
                        case 21: b = 722736; break;
4402
                        case 22: b = 0; break;
4403
                        case 23: b = 0; break;
4404
                        case 24: b = 722737; break;
4405
                        case 25: b = 0; break;
4406
                        case 26: b = 0; break;
4407
                        case 27: b = 722738; break;
4408
                        case 28: b = 0; break;
4409
                        case 29: b = 0; break;
4410
                        case 30: b = 722739; break;
4411
4412
                    }
4413
                    ushort X = Owner.X, Y = Owner.Y;
4414
                    Map Map = Kernel.Maps[Owner.MapID];
4415
                    if (Map.SelectCoordonates(ref X, ref Y))
4416
                    {
4417
                        MsgMapItem floorItem = new MsgMapItem(true);
4418
                        floorItem.Item = new MsgItemInfo(true);
4419
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4420
                        floorItem.Item.ID = b;
4421
                        floorItem.Item.MobDropped = true;
4422
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4423
                        floorItem.ItemID = b;
4424
                        floorItem.MapID = Owner.MapID;
4425-
                        
4425+
4426
                        floorItem.X = X;
4427
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4428
4429
                        floorItem.Type = MsgMapItem.Drop;
4430
                        floorItem.OnFloor = Time32.Now;
4431
                        floorItem.ItemColor = floorItem.Item.Color;
4432
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4433
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4434
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4435
                        Map.AddFloorItem(floorItem);
4436
                        SendScreenSpawn(floorItem);
4437
                    }
4438
                }
4439
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4440
                {
4441
                    killer.SecoundQuestPoint += 2;
4442
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4443
                }
4444
            }
4445
            if (Name == "SensitiveBeast")
4446
            {
4447
4448
                uint b = 0;
4449
                uint ban = (uint)Kernel.Random.Next(1, 9);
4450
                switch (ban)
4451
                {
4452
                    case 1: b = 722739; break;
4453
                    case 2: b = 722738; break;
4454
                    case 3: b = 722737; break;
4455
                    case 4: b = 0; break;
4456
                    case 5: b = 722732; break;
4457
                    case 6: b = 722733; break;
4458
                    case 7: b = 722734; break;
4459
                    case 8: b = 722735; break;
4460
                    case 9: b = 722736; break;
4461
                }
4462
                ushort X = Owner.X, Y = Owner.Y;
4463
                Map Map = Kernel.Maps[Owner.MapID];
4464
                if (Map.SelectCoordonates(ref X, ref Y))
4465
                {
4466
                    MsgMapItem floorItem = new MsgMapItem(true);
4467
                    floorItem.Item = new MsgItemInfo(true);
4468
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4469
                    floorItem.Item.ID = b;
4470
                    floorItem.Item.MobDropped = true;
4471
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4472
                    floorItem.ItemID = b;
4473
                    floorItem.MapID = Owner.MapID;
4474-
                   
4474+
4475
                    floorItem.X = X;
4476
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4477
4478
                    floorItem.Type = MsgMapItem.Drop;
4479
                    floorItem.OnFloor = Time32.Now;
4480
                    floorItem.ItemColor = floorItem.Item.Color;
4481
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4482
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4483
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4484
                    Map.AddFloorItem(floorItem);
4485
                    SendScreenSpawn(floorItem);
4486
                }
4487
4488
            }
4489
            #endregion
4490
            #region CrazyBeast
4491
            if (Name == "CrazyBeast")
4492
            {
4493
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4494
                {
4495
                    uint b = 0;
4496
                    uint ban = (uint)Kernel.Random.Next(1, 70);
4497
                    switch (ban)
4498
                    {
4499
                        case 1: b = 722723; break;
4500
                        case 2: b = 0; break;
4501
                        case 3: b = 722724; break;
4502
                        case 4: b = 0; break;
4503
                        case 5: b = 0; break;
4504
                        case 6: b = 722725; break;
4505
                        case 7: b = 0; break;
4506
                        case 8: b = 722732; break;
4507
                        case 9: b = 0; break;
4508
                        case 10: b = 0; break;
4509
                        case 11: b = 0; break;
4510
                        case 12: b = 722733; break;
4511
                        case 13: b = 0; break;
4512
                        case 14: b = 0; break;
4513
                        case 15: b = 722734; break;
4514
                        case 16: b = 0; break;
4515
                        case 17: b = 0; break;
4516
                        case 18: b = 722735; break;
4517
                        case 19: b = 0; break;
4518
                        case 20: b = 0; break;
4519
                        case 21: b = 722736; break;
4520
                        case 22: b = 0; break;
4521
                        case 23: b = 0; break;
4522
                        case 24: b = 722737; break;
4523
                        case 25: b = 0; break;
4524
                        case 26: b = 0; break;
4525
                        case 27: b = 722738; break;
4526
                        case 28: b = 0; break;
4527
                        case 29: b = 0; break;
4528
                        case 30: b = 722739; break;
4529
4530
                    }
4531
                    ushort X = Owner.X, Y = Owner.Y;
4532
                    Map Map = Kernel.Maps[Owner.MapID];
4533
                    if (Map.SelectCoordonates(ref X, ref Y))
4534
                    {
4535
                        MsgMapItem floorItem = new MsgMapItem(true);
4536
                        floorItem.Item = new MsgItemInfo(true);
4537
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4538
                        floorItem.Item.ID = b;
4539
                        floorItem.Item.MobDropped = true;
4540
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4541
                        floorItem.ItemID = b;
4542
                        floorItem.MapID = Owner.MapID;
4543-
                        
4543+
4544
                        floorItem.X = X;
4545
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4546
4547
                        floorItem.Type = MsgMapItem.Drop;
4548
                        floorItem.OnFloor = Time32.Now;
4549
                        floorItem.ItemColor = floorItem.Item.Color;
4550
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4551
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4552
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4553
                        Map.AddFloorItem(floorItem);
4554
                        SendScreenSpawn(floorItem);
4555
                    }
4556
                }
4557
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4558
                {
4559
                    killer.SecoundQuestPoint += 4;
4560
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4561
                }
4562
            }
4563
            if (Name == "CrazyBeast")
4564
            {
4565
4566
                uint b = 0;
4567
                uint ban = (uint)Kernel.Random.Next(1, 9);
4568
                switch (ban)
4569
                {
4570
                    case 1: b = 722739; break;
4571
                    case 2: b = 722738; break;
4572
                    case 3: b = 722737; break;
4573
                    case 4: b = 0; break;
4574
                    case 5: b = 722732; break;
4575
                    case 6: b = 722733; break;
4576
                    case 7: b = 722734; break;
4577
                    case 8: b = 722735; break;
4578
                    case 9: b = 722736; break;
4579
                }
4580
                ushort X = Owner.X, Y = Owner.Y;
4581
                Map Map = Kernel.Maps[Owner.MapID];
4582
                if (Map.SelectCoordonates(ref X, ref Y))
4583
                {
4584
                    MsgMapItem floorItem = new MsgMapItem(true);
4585
                    floorItem.Item = new MsgItemInfo(true);
4586
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4587
                    floorItem.Item.ID = b;
4588
                    floorItem.Item.MobDropped = true;
4589
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4590
                    floorItem.ItemID = b;
4591
                    floorItem.MapID = Owner.MapID;
4592-
                    
4592+
4593
                    floorItem.X = X;
4594
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4595
4596
                    floorItem.Type = MsgMapItem.Drop;
4597
                    floorItem.OnFloor = Time32.Now;
4598
                    floorItem.ItemColor = floorItem.Item.Color;
4599
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4600
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4601
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4602
                    Map.AddFloorItem(floorItem);
4603
                    SendScreenSpawn(floorItem);
4604
                }
4605
4606
            }
4607
            #endregion
4608
            #region FearlessBeast
4609
            if (Name == "FearlessBeast")
4610
            {
4611
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4612
                {
4613
                    uint b = 0;
4614
                    uint ban = (uint)Kernel.Random.Next(1, 6);
4615
                    switch (ban)
4616
                    {
4617
                        case 1: b = 722723; break;
4618
                        case 2: b = 0; break;
4619
                        case 3: b = 722724; break;
4620
                        case 4: b = 0; break;
4621
                        case 5: b = 0; break;
4622
                        case 6: b = 722725; break;
4623
                        case 7: b = 0; break;
4624
                        case 8: b = 722732; break;
4625
                        case 9: b = 0; break;
4626
                        case 10: b = 0; break;
4627
                        case 11: b = 0; break;
4628
                        case 12: b = 722733; break;
4629
                        case 13: b = 0; break;
4630
                        case 14: b = 0; break;
4631
                        case 15: b = 722734; break;
4632
                        case 16: b = 0; break;
4633
                        case 17: b = 0; break;
4634
                        case 18: b = 722735; break;
4635
                        case 19: b = 0; break;
4636
                        case 20: b = 0; break;
4637
                        case 21: b = 722736; break;
4638
                        case 22: b = 0; break;
4639
                        case 23: b = 0; break;
4640
                        case 24: b = 722737; break;
4641
                        case 25: b = 0; break;
4642
                        case 26: b = 0; break;
4643
                        case 27: b = 722738; break;
4644
                        case 28: b = 0; break;
4645
                        case 29: b = 0; break;
4646
                        case 30: b = 722739; break;
4647
4648
                    }
4649
                    ushort X = Owner.X, Y = Owner.Y;
4650
                    Map Map = Kernel.Maps[Owner.MapID];
4651
                    if (Map.SelectCoordonates(ref X, ref Y))
4652
                    {
4653
                        MsgMapItem floorItem = new MsgMapItem(true);
4654
                        floorItem.Item = new MsgItemInfo(true);
4655
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4656
                        floorItem.Item.ID = b;
4657
                        floorItem.Item.MobDropped = true;
4658
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4659
                        floorItem.ItemID = b;
4660
                        floorItem.MapID = Owner.MapID;
4661-
                       
4661+
4662
                        floorItem.X = X;
4663
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4664
4665
                        floorItem.Type = MsgMapItem.Drop;
4666
                        floorItem.OnFloor = Time32.Now;
4667
                        floorItem.ItemColor = floorItem.Item.Color;
4668
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4669
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4670
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4671
                        Map.AddFloorItem(floorItem);
4672
                        SendScreenSpawn(floorItem);
4673
                    }
4674
                }
4675
                else if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest3, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 40001)
4676
                {
4677
                    killer.SecoundQuestPoint += 500;
4678
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest3, killer.SecoundQuestPoint);
4679
                }
4680
            }
4681
            if (Name == "FearlessBeast")
4682
            {
4683
4684
                uint b = 0;
4685
                uint ban = (uint)Kernel.Random.Next(1, 9);
4686
                switch (ban)
4687
                {
4688
                    case 1: b = 722739; break;
4689
                    case 2: b = 722738; break;
4690
                    case 3: b = 722737; break;
4691
                    case 4: b = 0; break;
4692
                    case 5: b = 722732; break;
4693
                    case 6: b = 722733; break;
4694
                    case 7: b = 722734; break;
4695
                    case 8: b = 722735; break;
4696
                    case 9: b = 722736; break;
4697
                }
4698
                ushort X = Owner.X, Y = Owner.Y;
4699
                Map Map = Kernel.Maps[Owner.MapID];
4700
                if (Map.SelectCoordonates(ref X, ref Y))
4701
                {
4702
                    MsgMapItem floorItem = new MsgMapItem(true);
4703
                    floorItem.Item = new MsgItemInfo(true);
4704
                    floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4705
                    floorItem.Item.ID = b;
4706
                    floorItem.Item.MobDropped = true;
4707
                    floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4708
                    floorItem.ItemID = b;
4709
                    floorItem.MapID = Owner.MapID;
4710-
                   
4710+
4711
                    floorItem.X = X;
4712
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4713
4714
                    floorItem.Type = MsgMapItem.Drop;
4715
                    floorItem.OnFloor = Time32.Now;
4716
                    floorItem.ItemColor = floorItem.Item.Color;
4717
                    floorItem.UID = MsgMapItem.FloorUID.Next;
4718
                    while (Map.Npcs.ContainsKey(floorItem.UID))
4719
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4720
                    Map.AddFloorItem(floorItem);
4721
                    SendScreenSpawn(floorItem);
4722
                }
4723
4724
            }
4725
            #endregion
4726
4727
            #endregion
4728
            #region Theodore
4729
            if (Name == "Theodore" || Name == "Wayne" || Name == "Victoria" || Name == "Daphne" || Name == "Timothy" || Name == "Philip" || Name == "Peter" || Name == "Andrew")
4730
            {
4731
4732
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest5, MsgTaskStatus.QuestData.QuestStatus.Accepted) && killer.SecoundQuestPoint < 75)
4733
                {
4734
                    killer.SecoundQuestPoint++;
4735
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Secound_Quest5, killer.SecoundQuestPoint);
4736
                }
4737
            }
4738
            #endregion
4739
            #region HillSpirit
4740
            if (Name == "HillSpirit")
4741
            {
4742
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4743
                {
4744
4745
                    ushort X = Owner.X, Y = Owner.Y;
4746
                    Map Map = Kernel.Maps[Owner.MapID];
4747
                    if (Map.SelectCoordonates(ref X, ref Y))
4748
                    {
4749
                        MsgMapItem floorItem = new MsgMapItem(true);
4750
                        floorItem.Item = new MsgItemInfo(true);
4751
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4752
                        floorItem.Item.ID = 722722;
4753
                        floorItem.Item.MobDropped = true;
4754
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4755
                        floorItem.ItemID = 722722;
4756
                        floorItem.MapID = Owner.MapID;
4757-
                        
4757+
4758
                        floorItem.X = X;
4759
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4760
4761
                        floorItem.Type = MsgMapItem.Drop;
4762
                        floorItem.OnFloor = Time32.Now;
4763
                        floorItem.ItemColor = floorItem.Item.Color;
4764
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4765
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4766
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4767
                        Map.AddFloorItem(floorItem);
4768
                        SendScreenSpawn(floorItem);
4769
                    }
4770
                }
4771
4772
            }
4773
4774
            #endregion
4775
            #region SwiftDevil
4776
            if (Name == "SwiftDevil")
4777
            {
4778
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4779
                {
4780
4781
                    ushort X = Owner.X, Y = Owner.Y;
4782
                    Map Map = Kernel.Maps[Owner.MapID];
4783
                    if (Map.SelectCoordonates(ref X, ref Y))
4784
                    {
4785
                        MsgMapItem floorItem = new MsgMapItem(true);
4786
                        floorItem.Item = new MsgItemInfo(true);
4787
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4788
                        floorItem.Item.ID = 722726;
4789
                        floorItem.Item.MobDropped = true;
4790
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4791
                        floorItem.ItemID = 722726;
4792
                        floorItem.MapID = Owner.MapID;
4793-
                        
4793+
4794
                        floorItem.X = X;
4795
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4796
4797
                        floorItem.Type = MsgMapItem.Drop;
4798
                        floorItem.OnFloor = Time32.Now;
4799
                        floorItem.ItemColor = floorItem.Item.Color;
4800
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4801
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4802
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4803
                        Map.AddFloorItem(floorItem);
4804
                        SendScreenSpawn(floorItem);
4805
                    }
4806
                }
4807
4808
            }
4809
4810
            #endregion
4811
            #region Banshee
4812
            if (Name == "Banshee")
4813
            {
4814
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4815
                {
4816
4817
                    ushort X = Owner.X, Y = Owner.Y;
4818
                    Map Map = Kernel.Maps[Owner.MapID];
4819
                    if (Map.SelectCoordonates(ref X, ref Y))
4820
                    {
4821
                        MsgMapItem floorItem = new MsgMapItem(true);
4822
                        floorItem.Item = new MsgItemInfo(true);
4823
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4824
                        floorItem.Item.ID = 722729;
4825
                        floorItem.Item.MobDropped = true;
4826
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4827
                        floorItem.ItemID = 722729;
4828
                        floorItem.MapID = Owner.MapID;
4829-
                        
4829+
4830
                        floorItem.X = X;
4831
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4832
4833
                        floorItem.Type = MsgMapItem.Drop;
4834
                        floorItem.OnFloor = Time32.Now;
4835
                        floorItem.ItemColor = floorItem.Item.Color;
4836
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4837
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4838
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4839
                        Map.AddFloorItem(floorItem);
4840
                        SendScreenSpawn(floorItem);
4841
                    }
4842
                }
4843
4844
            }
4845
4846
            #endregion
4847
            #region CleansingDevil
4848
            if (Name == "CleansingDevil")
4849
            {
4850
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4851
                {
4852
4853
                    ushort X = Owner.X, Y = Owner.Y;
4854
                    Map Map = Kernel.Maps[Owner.MapID];
4855
                    if (Map.SelectCoordonates(ref X, ref Y))
4856
                    {
4857
                        MsgMapItem floorItem = new MsgMapItem(true);
4858
                        floorItem.Item = new MsgItemInfo(true);
4859
                        floorItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
4860
                        floorItem.Item.ID = 722731;
4861
                        floorItem.Item.MobDropped = true;
4862
                        floorItem.ValueType = MsgMapItem.FloorValueType.Item;
4863
                        floorItem.ItemID = 722731;
4864
                        floorItem.MapID = Owner.MapID;
4865-
                        
4865+
4866
                        floorItem.X = X;
4867
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
4868
4869
                        floorItem.Type = MsgMapItem.Drop;
4870
                        floorItem.OnFloor = Time32.Now;
4871
                        floorItem.ItemColor = floorItem.Item.Color;
4872
                        floorItem.UID = MsgMapItem.FloorUID.Next;
4873
                        while (Map.Npcs.ContainsKey(floorItem.UID))
4874
                            floorItem.UID = MsgMapItem.FloorUID.Next;
4875
                        Map.AddFloorItem(floorItem);
4876
                        SendScreenSpawn(floorItem);
4877
                    }
4878
                }
4879
4880
            }
4881
4882
            #endregion
4883
            #region Satan
4884
            if (Name == "Satan")
4885
            {
4886
                if (killer.Owner.Quests.CheckQuest(QuestID.Secound_Quest6, MsgTaskStatus.QuestData.QuestStatus.Accepted))
4887
                {
4888
                    killer.Owner.Quests.FinishQuest(QuestID.Secound_Quest6);
4889
                    killer.SecoundQuestDone = true;
4890
                    killer.Teleport(1036, 200, 200);
4891
                    MsgName str = new MsgName(true);
4892
                    str.UID = killer.UID;
4893
                    str.TextsCount = 1;
4894
                    str.Action = MsgName.Mode.Effect;
4895
                    str.Texts.Add("end_task");
4896
                    killer.Owner.SendScreen(str, true);
4897
                    AboGamil.Kernel.SendWorldMessage(new AboGamil.Network.GamePackets.MsgTalk("Congratulations! " + killer.Name + " Has Finished Secound Quest .", System.Drawing.Color.Black, AboGamil.Network.GamePackets.MsgTalk.Center), Server.GamePool);
4898
                }
4899
            }
4900
4901
            #endregion
4902
            #endregion
4903
            #region BrightFortune
4904
            #region AngerRat
4905
            if (Name == "AngerRat")
4906
            {
4907
                #region AngerRat
4908
                if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills < 10)
4909
                {
4910
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.BloodVengeance, 1);
4911
                }
4912
                else if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills >= 10)
4913
                {
4914
                    killer.Owner.MessageBox("You`ve eliminated enough number of Anger Rats. Hurry and report back to Chong Yan Elder!",
4915
                       p =>
4916
                       {
4917
                           MsgAction data = new MsgAction(true);
4918
                           data.UID = p.Player.UID;
4919
                           data.TimeStamp2 = 19162;
4920
                           data.ID = (MsgAction.Mode)162;
4921
                           data.wParam1 = 142;
4922
                           data.wParam2 = 320;
4923
                           p.Send(data);
4924
                       }, null);
4925
                }
4926
                #endregion
4927
            }
4928
            #endregion
4929
            #region FlameRockMonste
4930
            if (Name.Contains("FlameRockMonste"))
4931
            {
4932
                #region FlameRockMonste
4933
                if (killer.Owner.Inventory.Contains(3008752, 8))
4934
                {
4935
4936
                    killer.Owner.MessageBox("You`ve collected enough number of Rune Fragments. Go and try to complete the runes on the Forge Furnace.",
4937
                        p =>
4938
                        {
4939
                            MsgAction data = new MsgAction(true);
4940
                            data.UID = p.Player.UID;
4941
                            data.TimeStamp2 = 19163;
4942
                            data.ID = (MsgAction.Mode)162;
4943
                            data.wParam1 = 311;
4944
                            data.wParam2 = 449;
4945
                            p.Send(data);
4946
                        }, null);
4947
                }
4948
                else
4949
                {
4950
                    if (Kernel.Rate(20))
4951
                    {
4952
4953
                        killer.Owner.Inventory.Add(3008752, 0, 1);
4954
                        MsgName str = new MsgName(true);
4955
                        str.UID = killer.Owner.Player.UID;
4956
                        str.TextsCount = 1;
4957
                        str.Type = (int)MsgName.Mode.Effect;
4958
                        str.Texts.Add("zf2-e123");
4959
                        killer.Owner.SendScreen(str, true);
4960
4961
                    }
4962
4963
                }
4964
                #endregion
4965
            }
4966
            #endregion
4967
            #region VioletBatKing
4968
            if (Name == "VioletBatKing")
4969
            {
4970
                #region VioletBatKing
4971
                if (!killer.Owner.Inventory.Contains(3008750, 1) && killer.Owner.Quests.GetQuest(QuestID.SecretOfBright) != null)
4972
                {
4973
                    killer.Owner.Inventory.Add(3008750, 0, 1);
4974
                    killer.Owner.MessageBox("The Violet Bat King fell down and dropped an ancient-style hammer. Hurry and take this hammer to the Forge Furnace.",
4975
                        p =>
4976
                        {
4977
                            MsgAction data = new MsgAction(true);
4978
                            data.UID = p.Player.UID;
4979
                            data.TimeStamp2 = 19163;
4980
                            data.ID = (MsgAction.Mode)162;
4981
                            data.wParam1 = 311;
4982
                            data.wParam2 = 449;
4983
                            p.Send(data);
4984
                        }, null);
4985
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.SecretOfBright, 1);
4986
                }
4987
                #endregion
4988
            }
4989
            #endregion
4990
            #region LavaScorpion
4991
            if (Name == "LavaScorpion")
4992
            {
4993
                #region LavaScorpion
4994
                if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills >= 15)
4995
                {
4996
                    killer.Owner.MessageBox("You`ve defeated enough number of Lava Scorpions. Now, you can appease the sacrificed Bright people.",
4997
                       p =>
4998
                       {
4999
                           MsgAction data = new MsgAction(true);
5000
                           data.UID = p.Player.UID;
5001
                           data.TimeStamp2 = 19164;
5002
                           data.ID = (MsgAction.Mode)162;
5003
                           data.wParam1 = 251;
5004
                           data.wParam2 = 277;
5005
                           p.Send(data);
5006
                       }, null);
5007
                }
5008
                else if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills1 < 15)
5009
                {
5010
                    killer.Owner.Quests.IncreaseQuestKills5(QuestID.SacrificetotheDead, 1);
5011
5012
                }
5013
                #endregion
5014
            }
5015
            #endregion
5016
            #region RoaringSnake
5017
            if (Name == "RoaringSnake")
5018
            {
5019
                #region RoaringSnake
5020
                if (killer.Owner.Inventory.Contains(3008742, 50) && killer.Owner.Quests.GetQuest(QuestID.SorrowofDesolation) != null)
5021
                {
5022
                    killer.Owner.MessageBox("You`ve collect enough number of Building Stones. Go and try to restore the ruined altar.",
5023
                       p =>
5024
                       {
5025
                           MsgAction data = new MsgAction(true);
5026
                           data.UID = p.Player.UID;
5027
                           data.ID = (MsgAction.Mode)162;
5028
                           data.wParam1 = 578;
5029
                           data.wParam2 = 419;
5030
                           p.Send(data);
5031
                       }, null);
5032
                }
5033
                else
5034
                {
5035
                    killer.Owner.Inventory.Add(3008742, 0, 1);
5036
                }
5037
                #endregion
5038
            }
5039
            #endregion
5040
            #region ClawedRockDevil
5041
            if (Name == "ClawedRockDevil")
5042
            {
5043
                #region ClawedRockDevil
5044
                if (killer.Owner.Inventory.Contains(3008743, 1))
5045
                {
5046
                }
5047
                else
5048
                {
5049
5050
                    if (Kernel.Rate(40))
5051
                    {
5052
                        killer.Owner.Inventory.Add(3008743, 0, 1);
5053
                        killer.Owner.MessageBox("You`ve retrieved the Wheel of Nature from the Clawed Rock Devil. Hurry and take the next action at the altar.",
5054
                           p =>
5055
                           {
5056
                               MsgAction data = new MsgAction(true);
5057
                               data.UID = p.Player.UID;
5058
5059
                               data.TimeStamp2 = 19165;
5060
                               data.ID = (MsgAction.Mode)162;
5061
                               data.wParam1 = 573;
5062
                               data.wParam2 = 423;
5063
                               p.Send(data);
5064
                           }, null);
5065
5066
                    }
5067
                }
5068
                #endregion
5069
            }
5070
            #endregion
5071
            #region HornedRockBeast
5072
            if (Name == "HornedRockBeast")
5073
            {
5074
                #region HornedRockBeast
5075
                if (!killer.Owner.Inventory.Contains(3008745, 1))
5076
                {
5077
                    if (killer.Owner.Inventory.Contains(3008754, 5))
5078
                    {
5079
5080
                        killer.Owner.Inventory.Add(3008745, 0, 1);
5081
                        killer.Owner.Inventory.Remove(3008754, 5);
5082
                        killer.Owner.MessageBox("You received the Earth Force! Hurry and transform it into Metal Force through the Wheel of Nature!",
5083
                           p =>
5084
                           {
5085
                               MsgAction data = new MsgAction(true);
5086
                               data.UID = p.Player.UID;
5087
5088
                               data.TimeStamp2 = 19165;
5089
                               data.ID = (MsgAction.Mode)162;
5090
                               data.wParam1 = 578;
5091
                               data.wParam2 = 419;
5092
                               p.Send(data);
5093
                           }, null);
5094
5095
                    }
5096
                    else
5097
                    {
5098
5099
                        if (Kernel.Rate(40))
5100
                        {
5101
                            killer.Owner.Inventory.Add(3008754, 0, 1);
5102
5103
                        }
5104
                    }
5105
                }
5106
                #endregion
5107
            }
5108
            #endregion
5109
            #region HellfireBeast
5110
            if (Name == "HellfireBeast")
5111
            {
5112
                #region HellfireBeast
5113
                if (killer.Owner.Inventory.Contains(3008748, 100))
5114
                {
5115
                    killer.Owner.MessageBox("You`ve collected enough number of Star Ores. Go and try to extract the Essence of Star at the altar.",
5116
                       p =>
5117
                       {
5118
                           MsgAction data = new MsgAction(true);
5119
                           data.UID = p.Player.UID;
5120
                           data.TimeStamp2 = 19165;
5121
                           data.ID = (MsgAction.Mode)162;
5122
                           data.wParam1 = 571;
5123
                           data.wParam2 = 424;
5124
                           p.Send(data);
5125
                       }, null);
5126
5127
                }
5128
                else
5129
                {
5130
                    killer.Owner.Inventory.Add(3008748, 0, 5);
5131
5132
                }
5133
                #endregion
5134
            }
5135
            #endregion
5136
            #endregion
5137
            #region CrystalBounty
5138
            if (killer.MapID == 3935)
5139
            {
5140
                if (killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) != MsgTaskStatus.QuestData.QuestStatus.Finished)
5141
                {
5142
                    if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty) == null || killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) == MsgTaskStatus.QuestData.QuestStatus.Available)
5143
                        killer.Owner.Quests.Accept(QuestID.CrystalBounty);
5144
                    if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills < 50)
5145
                    {
5146
                        int R = 5;
5147
                        if (Name == "RealmSolider")
5148
                        {
5149
                            R = Kernel.Random.Next(1, 1);
5150
                        }
5151
                        if (Name.Contains("MilitaryOfficerofRealm"))
5152
                        {
5153
5154
                            R = Kernel.Random.Next(1, 1);
5155
                        }
5156
                        if (Name == "KylinChariot")
5157
                        {
5158
                            R = Kernel.Random.Next(10, 10);
5159
                        }
5160
                        killer.Owner.Quests.CrystalBounty(QuestID.CrystalBounty, (uint)R);
5161
                        if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills >= 50)
5162
                        {
5163
                            killer.Owner.Send(new MsgTalk("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, MsgTalk.System));
5164
                        }
5165
                    }
5166
                    else
5167
                    {
5168
                        killer.Owner.Send(new MsgTalk("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, MsgTalk.System));
5169
                    }
5170
                }
5171
            }
5172
            #endregion
5173
            #region BeastsOfLegend
5174
            if (killer.MapID == 3935)
5175
            {
5176
                if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend) == null || killer.Owner.Quests.CheckQuest(QuestID.BeastsOfLegend) == MsgTaskStatus.QuestData.QuestStatus.Available)
5177
                    killer.Owner.Quests.Accept(QuestID.BeastsOfLegend);
5178
                if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend).QItem.Status != MsgTaskStatus.QuestData.QuestStatus.Finished)
5179
                {
5180
                    #region WhiteTigerDefender
5181
                    if (Name.Contains("WhiteTigerDefender"))
5182
                    {
5183
                        if (!Kernel.WhiteTigerSpawn)
5184
                        {
5185
                            if (Kernel.Rate(30))
5186
                            {
5187
                                Database.MonsterInformation monster = new Database.MonsterInformation();
5188
                                Kernel.WhiteTigerSpawn = true;
5189
                                monster.Hitpoints = 500000;
5190
                                monster.Level = 140;
5191
5192
5193
5194
                                monster.Mesh = 709;
5195
                                monster.Name = "WhiteTiger";
5196
                                monster.ID = 7886;
5197
5198
5199
                                monster.MaxAttack = 2100;
5200
                                monster.AttackRange = 3;
5201
                                monster.AttackType = 2;
5202
                                monster.AttackSpeed = 1000;
5203
                                monster.ViewRange = 20;
5204
                                monster.MoveSpeed = 1000;
5205
                                monster.RunSpeed = 1000;
5206
                                monster.MinAttack = 1000;
5207
                                Game.Player entity = new Game.Player(Game.PlayerFlag.Monster, false);
5208
                                entity.MapObjType = Game.MapObjectType.Monster;
5209
                                entity.MonsterInfo = monster;
5210
                                entity.MonsterInfo.Owner = entity;
5211
                                entity.Name = monster.Name;
5212
                                entity.MinAttack = monster.MinAttack;
5213
                                entity.MaxAttack = entity.MagicAttack = monster.MaxAttack;
5214
                                entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints;
5215
                                entity.Body = monster.Mesh;
5216
                                entity.Level = monster.Level;
5217
                                entity.Defence = 90;
5218
                                entity.X = killer.X;
5219
                                entity.Y = killer.Y;
5220
                                entity.UID = Kernel.Maps[3935].EntityUIDCounter.Next;
5221
                                entity.MapID = 3935;
5222
                                entity.SendUpdates = true;
5223
                                killer.Owner.Map.RemoveEntity(entity);
5224
                                killer.Owner.Map.AddEntity(entity);
5225
                                killer.Owner.Screen.Reload(null);
5226
                            }
5227
                        }
5228
                    }
5229
                    #endregion
5230-
                        if (Kernel.BlackTurtleSpawn==false)
5230+
5231
                    if (Name.Contains("BlackTurtleDefender"))
5232
                    {
5233
                        if (Kernel.BlackTurtleSpawn == false)
5234
                        {
5235
                            if (Kernel.Rate(30))
5236
                            {
5237
                                Database.MonsterInformation monster = new Database.MonsterInformation();
5238
5239
                                monster.Hitpoints = 500000;
5240
                                monster.Level = 140;
5241-
                               
5241+
5242
                                monster.Name = "BlackTurtle";
5243
                                monster.ID = 7888;
5244
5245
                                monster.MaxAttack = 2100;
5246
                                monster.AttackRange = 3;
5247
                                monster.AttackType = 2;
5248
                                monster.AttackSpeed = 1000;
5249
                                monster.ViewRange = 20;
5250
                                monster.MoveSpeed = 1000;
5251
                                monster.RunSpeed = 1000;
5252
                                monster.MinAttack = 1000;
5253
                                Game.Player entity = new Game.Player(Game.PlayerFlag.Monster, false);
5254
                                entity.MapObjType = Game.MapObjectType.Monster;
5255
                                entity.MonsterInfo = monster;
5256
                                entity.MonsterInfo.Owner = entity;
5257
                                entity.Name = monster.Name;
5258
                                entity.MinAttack = monster.MinAttack;
5259
                                entity.MaxAttack = entity.MagicAttack = monster.MaxAttack;
5260
                                entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints;
5261
                                entity.Body = monster.Mesh;
5262
                                entity.Level = monster.Level;
5263
                                entity.Defence = 90;
5264
                                entity.X = killer.X;
5265
                                entity.Y = killer.Y;
5266
                                entity.UID = Kernel.Maps[3935].EntityUIDCounter.Next;
5267
                                entity.MapID = 3935;
5268
                                entity.SendUpdates = true;
5269
                                killer.Owner.Map.RemoveEntity(entity);
5270
                                killer.Owner.Map.AddEntity(entity);
5271
                                killer.Owner.Screen.Reload(null);
5272
                                Kernel.BlackTurtleSpawn = true;
5273
                            }
5274
                        }
5275
                    }
5276
                    #endregion
5277-
                        if(! Kernel.VermilionBirdDefenderSpawn)
5277+
5278
                    if (Name.Contains("VermilionBirdDefender"))
5279-
                        if (Kernel.Rate(30))
5279+
5280
                        if (!Kernel.VermilionBirdDefenderSpawn)
5281-
                            Database.MonsterInformation monster = new Database.MonsterInformation();
5281+
5282
                            if (Kernel.Rate(30))
5283-
                            monster.Hitpoints = 500000;
5283+
5284-
                            monster.Level = 140;
5284+
5285-
                            monster.Mesh = 710;
5285+
5286-
                            monster.Name = "VermilionBird";
5286+
5287-
                            monster.ID = 7887;
5287+
5288-
                            monster.MaxAttack = 2100;
5288+
                                monster.Mesh = 710;
5289-
                            monster.AttackRange = 3;
5289+
                                monster.Name = "VermilionBird";
5290-
                            monster.AttackType = 2;
5290+
                                monster.ID = 7887;
5291-
                            monster.AttackSpeed = 1000;
5291+
5292-
                            monster.ViewRange = 20;
5292+
5293-
                            monster.MoveSpeed = 1000;
5293+
5294-
                            monster.RunSpeed = 1000;
5294+
5295-
                            monster.MinAttack = 1000;
5295+
5296-
                            Game.Player entity = new Game.Player(Game.PlayerFlag.Monster, false);
5296+
5297-
                            entity.MapObjType = Game.MapObjectType.Monster;
5297+
5298-
                            entity.MonsterInfo = monster;
5298+
5299-
                            entity.MonsterInfo.Owner = entity;
5299+
5300-
                            entity.Name = monster.Name;
5300+
5301-
                            entity.MinAttack = monster.MinAttack;
5301+
5302-
                            entity.MaxAttack = entity.MagicAttack = monster.MaxAttack;
5302+
5303-
                            entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints;
5303+
5304-
                            entity.Body = monster.Mesh;
5304+
5305-
                            entity.Level = monster.Level;
5305+
5306-
                            entity.Defence = 90;
5306+
5307-
                            entity.X = killer.X;
5307+
5308-
                            entity.Y = killer.Y;
5308+
5309-
                            entity.UID = Kernel.Maps[3935].EntityUIDCounter.Next;
5309+
5310-
                            entity.MapID = 3935;
5310+
5311-
                            entity.SendUpdates = true;
5311+
5312-
                            killer.Owner.Map.RemoveEntity(entity);
5312+
5313-
                            killer.Owner.Map.AddEntity(entity);
5313+
5314-
                            Kernel.VermilionBirdDefenderSpawn = true;
5314+
5315-
                            killer.Owner.Screen.Reload(null);
5315+
5316
                                killer.Owner.Map.AddEntity(entity);
5317
                                Kernel.VermilionBirdDefenderSpawn = true;
5318
                                killer.Owner.Screen.Reload(null);
5319
                            }
5320
                        }
5321
                    }
5322
                    #endregion
5323
                    #region AzureDragonDefender
5324
                    if (Name.Contains("AzureDragonDefender"))
5325
                    {
5326
                        if (!Kernel.AzureDragonDefenderSpawn)
5327
                        {
5328
                            if (Kernel.Rate(30))
5329
                            {
5330
                                Database.MonsterInformation monster = new Database.MonsterInformation();
5331
5332
                                monster.Hitpoints = 500000;
5333
                                monster.Level = 140;
5334
                                Kernel.AzureDragonDefenderSpawn = true;
5335
                                monster.Mesh = 711;
5336
                                monster.Name = "AzureDragon";
5337
                                monster.ID = 7885;
5338
                                monster.MaxAttack = 2100;
5339
                                monster.AttackRange = 3;
5340
                                monster.AttackType = 2;
5341
                                monster.AttackSpeed = 1000;
5342
                                monster.ViewRange = 20;
5343
                                monster.MoveSpeed = 1000;
5344
                                monster.RunSpeed = 1000;
5345
                                monster.MinAttack = 1000;
5346
                                Game.Player entity = new Game.Player(Game.PlayerFlag.Monster, false);
5347
                                entity.MapObjType = Game.MapObjectType.Monster;
5348
                                entity.MonsterInfo = monster;
5349
                                entity.MonsterInfo.Owner = entity;
5350
                                entity.Name = monster.Name;
5351
                                entity.MinAttack = monster.MinAttack;
5352
                                entity.MaxAttack = entity.MagicAttack = monster.MaxAttack;
5353
                                entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints;
5354
                                entity.Body = monster.Mesh;
5355
                                entity.Level = monster.Level;
5356
                                entity.Defence = 90;
5357
                                entity.X = killer.X;
5358
                                entity.Y = killer.Y;
5359
                                entity.UID = Kernel.Maps[3935].EntityUIDCounter.Next;
5360
                                entity.MapID = 3935;
5361
                                entity.SendUpdates = true;
5362
                                killer.Owner.Map.RemoveEntity(entity);
5363
                                killer.Owner.Map.AddEntity(entity);
5364
                                killer.Owner.Screen.Reload(null);
5365
                            }
5366
                        }
5367
                    }
5368
                    #endregion
5369
                    if (Name == "AzureDragon" || Name == "WhiteTiger" || Name == "BlackTurtle" || Name == "VermilionBird")
5370
                    {
5371
                        if (Name == "AzureDragon")
5372
                        {
5373
                            Kernel.AzureDragonDefenderSpawn = false;
5374
                        }
5375
                        if (Name == "VermilionBird")
5376
                        {
5377
                            Kernel.VermilionBirdDefenderSpawn = false;
5378
                        }
5379
                        if (Name == "WhiteTiger")
5380
                        {
5381
                            Kernel.WhiteTigerSpawn = false;
5382
                        }
5383
                        if (Name == "BlackTurtle")
5384
                        {
5385
                            Kernel.BlackTurtleSpawn = false;
5386
                        }
5387
                        if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend).Kills == 0)
5388
                        {
5389-
                       
5389+
5390
                            killer.Owner.MessageBox("You`ve defeated the divine beast. Hurry and claim your reward from the Kingdom Mission Envoy!");
5391
                        }
5392
5393
                        MsgName str = new MsgName(true);
5394
                        str.UID = killer.UID;
5395
                        str.TextsCount = 1;
5396
                        str.Action = MsgName.Mode.Effect;
5397
                        str.Texts.Add("end_task");
5398
                        killer.Owner.SendScreen(str.ToArray(), true);
5399
                        killer.Owner.Screen.Reload(null);
5400
5401
                    }
5402
                }
5403
            }
5404
            #endregion
5405
            #region BattleFields
5406
            #region L93Brigand
5407
            if (Name == "L93Brigand")
5408
            {
5409
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5410
                {
5411
                    killer.BattleFieldsLv90++;
5412
                    if (killer.BattleFieldsLv90 < 301)
5413
                    {
5414
5415
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv90);
5416
                    }
5417
                }
5418
                if (!Player.BattleField.ContainsKey(killer.UID))
5419
                {
5420
                    Player.BattleField.Add(killer.UID, killer.Owner);
5421
                }
5422
                killer.CalculateBattleFieldRankLv90();
5423
                if (Kernel.Rate(10))
5424
                {
5425
                    uint b = 0;
5426
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5427
                    switch (ban)
5428
                    {
5429
                        case 1: b = 729700; break;//PotencyPotion
5430
                        case 2: b = 0; break;
5431
                        case 3: b = 729694; break;//5*AttackPotion
5432
                        case 4: b = 0; break;
5433
                        case 5: b = 0; break;
5434
                        case 6: b = 729695; break;//BosterPoition
5435
                        case 7: b = 0; break;
5436
                        case 8: b = 729696; break;
5437
                        case 9: b = 0; break;
5438
                        case 10: b = 0; break;
5439
                        case 11: b = 0; break;
5440
                        case 12: b = 729697; break;
5441
                        case 13: b = 0; break;
5442
                        case 14: b = 0; break;
5443
                        case 15: b = 729698; break;
5444
                        case 16: b = 0; break;
5445
                        case 17: b = 0; break;
5446
                        case 18: b = 729698; break;
5447
                        case 19: b = 0; break;
5448
                        case 20: b = 0; break;
5449
                        case 21: b = 0; break;
5450
                        case 22: b = 0; break;
5451
                        case 23: b = 0; break;
5452
                        case 24: b = 729700; break;
5453
                        case 25: b = 0; break;
5454
                        case 26: b = 0; break;
5455
                        case 27: b = 729701; break;
5456
                        case 28: b = 0; break;
5457
                        case 29: b = 0; break;
5458
5459
5460
                    }
5461
                    ushort X = Owner.X, Y = Owner.Y;
5462
                    Map Map = Kernel.Maps[Owner.MapID];
5463
                    if (Map.SelectCoordonates(ref X, ref Y))
5464
                    {
5465
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5466
                        MsgMapItem.Item = new MsgItemInfo(true);
5467
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5468
                        MsgMapItem.Item.ID = b;
5469
                        MsgMapItem.Item.MobDropped = true;
5470
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5471
                        MsgMapItem.ItemID = b;
5472
                        MsgMapItem.MapID = Owner.MapID;
5473
                        MsgMapItem.MapObjType = MapObjectType.Item;
5474
                        MsgMapItem.X = X;
5475
                        MsgMapItem.Y = Y;
5476
                        MsgMapItem.Owner = killer.Owner;
5477
                        MsgMapItem.Type = MsgMapItem.Drop;
5478
                        MsgMapItem.OnFloor = Time32.Now;
5479
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5480
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5481
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5482
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5483
                        Map.AddFloorItem(MsgMapItem);
5484
                        SendScreenSpawn(MsgMapItem);
5485
5486
5487
                    }
5488
                }
5489
5490
            }
5491
5492
5493
5494
            #endregion
5495
            #region L98Robber
5496
            if (Name == "L98Robber")
5497
            {
5498
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5499
                {
5500
                    killer.BattleFieldsLv90++;
5501
                    if (killer.BattleFieldsLv90 < 301)
5502
                    {
5503
5504
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv90);
5505
                    }
5506
                }
5507
                if (!Player.BattleField.ContainsKey(killer.UID))
5508
                {
5509
                    Player.BattleField.Add(killer.UID, killer.Owner);
5510
                }
5511
                killer.CalculateBattleFieldRankLv90();
5512
                if (Kernel.Rate(10))
5513
                {
5514
                    uint b = 0;
5515
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5516
                    switch (ban)
5517
                    {
5518
                        case 1: b = 729700; break;//PotencyPotion
5519
                        case 2: b = 0; break;
5520
                        case 3: b = 729694; break;//5*AttackPotion
5521
                        case 4: b = 0; break;
5522
                        case 5: b = 0; break;
5523
                        case 6: b = 729695; break;//BosterPoition
5524
                        case 7: b = 0; break;
5525
                        case 8: b = 729696; break;
5526
                        case 9: b = 0; break;
5527
                        case 10: b = 0; break;
5528
                        case 11: b = 0; break;
5529
                        case 12: b = 729697; break;
5530
                        case 13: b = 0; break;
5531
                        case 14: b = 0; break;
5532
                        case 15: b = 729698; break;
5533
                        case 16: b = 0; break;
5534
                        case 17: b = 0; break;
5535
                        case 18: b = 729698; break;
5536
                        case 19: b = 0; break;
5537
                        case 20: b = 0; break;
5538
                        case 21: b = 0; break;
5539
                        case 22: b = 0; break;
5540
                        case 23: b = 0; break;
5541
                        case 24: b = 729700; break;
5542
                        case 25: b = 0; break;
5543
                        case 26: b = 0; break;
5544
                        case 27: b = 729701; break;
5545
                        case 28: b = 0; break;
5546
                        case 29: b = 0; break;
5547
5548
5549
                    }
5550
                    ushort X = Owner.X, Y = Owner.Y;
5551
                    Map Map = Kernel.Maps[Owner.MapID];
5552
                    if (Map.SelectCoordonates(ref X, ref Y))
5553
                    {
5554
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5555
                        MsgMapItem.Item = new MsgItemInfo(true);
5556
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5557
                        MsgMapItem.Item.ID = b;
5558
                        MsgMapItem.Item.MobDropped = true;
5559
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5560
                        MsgMapItem.ItemID = b;
5561
                        MsgMapItem.MapID = Owner.MapID;
5562
                        MsgMapItem.MapObjType = MapObjectType.Item;
5563
                        MsgMapItem.X = X;
5564
                        MsgMapItem.Y = Y;
5565
                        MsgMapItem.Owner = killer.Owner;
5566
                        MsgMapItem.Type = MsgMapItem.Drop;
5567
                        MsgMapItem.OnFloor = Time32.Now;
5568
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5569
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5570
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5571
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5572
                        Map.AddFloorItem(MsgMapItem);
5573
                        SendScreenSpawn(MsgMapItem);
5574
5575
5576
                    }
5577
                }
5578
5579
            }
5580
5581
5582
5583
            #endregion
5584
            #region L103Aggressor
5585
            if (Name == "L103Aggressor")
5586
            {
5587
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5588
                {
5589
                    killer.BattleFieldsLv102++;
5590
                    if (killer.BattleFieldsLv102 < 301)
5591
                    {
5592
5593
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv102);
5594
                    }
5595
                }
5596
                if (!Player.BattleField.ContainsKey(killer.UID))
5597
                {
5598
                    Player.BattleField.Add(killer.UID, killer.Owner);
5599
                }
5600
                killer.CalculateBattleFieldRankLv101();
5601
                if (Kernel.Rate(10))
5602
                {
5603
                    uint b = 0;
5604
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5605
                    switch (ban)
5606
                    {
5607
                        case 1: b = 729700; break;//PotencyPotion
5608
                        case 2: b = 0; break;
5609
                        case 3: b = 729694; break;//5*AttackPotion
5610
                        case 4: b = 0; break;
5611
                        case 5: b = 0; break;
5612
                        case 6: b = 729695; break;//BosterPoition
5613
                        case 7: b = 0; break;
5614
                        case 8: b = 729696; break;
5615
                        case 9: b = 0; break;
5616
                        case 10: b = 0; break;
5617
                        case 11: b = 0; break;
5618
                        case 12: b = 729697; break;
5619
                        case 13: b = 0; break;
5620
                        case 14: b = 0; break;
5621
                        case 15: b = 729698; break;
5622
                        case 16: b = 0; break;
5623
                        case 17: b = 0; break;
5624
                        case 18: b = 729698; break;
5625
                        case 19: b = 0; break;
5626
                        case 20: b = 0; break;
5627
                        case 21: b = 0; break;
5628
                        case 22: b = 0; break;
5629
                        case 23: b = 0; break;
5630
                        case 24: b = 729700; break;
5631
                        case 25: b = 0; break;
5632
                        case 26: b = 0; break;
5633
                        case 27: b = 729701; break;
5634
                        case 28: b = 0; break;
5635
                        case 29: b = 0; break;
5636
5637
5638
                    }
5639
                    ushort X = Owner.X, Y = Owner.Y;
5640
                    Map Map = Kernel.Maps[Owner.MapID];
5641
                    if (Map.SelectCoordonates(ref X, ref Y))
5642
                    {
5643
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5644
                        MsgMapItem.Item = new MsgItemInfo(true);
5645
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5646
                        MsgMapItem.Item.ID = b;
5647
                        MsgMapItem.Item.MobDropped = true;
5648
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5649
                        MsgMapItem.ItemID = b;
5650
                        MsgMapItem.MapID = Owner.MapID;
5651
                        MsgMapItem.MapObjType = MapObjectType.Item;
5652
                        MsgMapItem.X = X;
5653
                        MsgMapItem.Y = Y;
5654
                        MsgMapItem.Owner = killer.Owner;
5655
                        MsgMapItem.Type = MsgMapItem.Drop;
5656
                        MsgMapItem.OnFloor = Time32.Now;
5657
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5658
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5659
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5660
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5661
                        Map.AddFloorItem(MsgMapItem);
5662
                        SendScreenSpawn(MsgMapItem);
5663
5664
5665
                    }
5666
                }
5667
5668
            }
5669
5670
5671
5672
            #endregion
5673
            #region L108Robot
5674
            if (Name == "L108Robot")
5675
            {
5676
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5677
                {
5678
                    killer.BattleFieldsLv102++;
5679
                    if (killer.BattleFieldsLv102 < 301)
5680
                    {
5681
5682
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv102);
5683
                    }
5684
                }
5685
                if (!Player.BattleField.ContainsKey(killer.UID))
5686
                {
5687
                    Player.BattleField.Add(killer.UID, killer.Owner);
5688
                }
5689
                killer.CalculateBattleFieldRankLv101();
5690
                if (Kernel.Rate(10))
5691
                {
5692
                    uint b = 0;
5693
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5694
                    switch (ban)
5695
                    {
5696
                        case 1: b = 729700; break;//PotencyPotion
5697
                        case 2: b = 0; break;
5698
                        case 3: b = 729694; break;//5*AttackPotion
5699
                        case 4: b = 0; break;
5700
                        case 5: b = 0; break;
5701
                        case 6: b = 729695; break;//BosterPoition
5702
                        case 7: b = 0; break;
5703
                        case 8: b = 729696; break;
5704
                        case 9: b = 0; break;
5705
                        case 10: b = 0; break;
5706
                        case 11: b = 0; break;
5707
                        case 12: b = 729697; break;
5708
                        case 13: b = 0; break;
5709
                        case 14: b = 0; break;
5710
                        case 15: b = 729698; break;
5711
                        case 16: b = 0; break;
5712
                        case 17: b = 0; break;
5713
                        case 18: b = 729698; break;
5714
                        case 19: b = 0; break;
5715
                        case 20: b = 0; break;
5716
                        case 21: b = 0; break;
5717
                        case 22: b = 0; break;
5718
                        case 23: b = 0; break;
5719
                        case 24: b = 729700; break;
5720
                        case 25: b = 0; break;
5721
                        case 26: b = 0; break;
5722
                        case 27: b = 729701; break;
5723
                        case 28: b = 0; break;
5724
                        case 29: b = 0; break;
5725
5726
5727
                    }
5728
                    ushort X = Owner.X, Y = Owner.Y;
5729
                    Map Map = Kernel.Maps[Owner.MapID];
5730
                    if (Map.SelectCoordonates(ref X, ref Y))
5731
                    {
5732
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5733
                        MsgMapItem.Item = new MsgItemInfo(true);
5734
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5735
                        MsgMapItem.Item.ID = b;
5736
                        MsgMapItem.Item.MobDropped = true;
5737
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5738
                        MsgMapItem.ItemID = b;
5739
                        MsgMapItem.MapID = Owner.MapID;
5740
                        MsgMapItem.MapObjType = MapObjectType.Item;
5741
                        MsgMapItem.X = X;
5742
                        MsgMapItem.Y = Y;
5743
                        MsgMapItem.Owner = killer.Owner;
5744
                        MsgMapItem.Type = MsgMapItem.Drop;
5745
                        MsgMapItem.OnFloor = Time32.Now;
5746
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5747
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5748
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5749
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5750
                        Map.AddFloorItem(MsgMapItem);
5751
                        SendScreenSpawn(MsgMapItem);
5752
5753
5754
                    }
5755
                }
5756
5757
            }
5758
5759
5760
5761
            #endregion
5762
            #region L113BloodPirate
5763
            if (Name == "L113BloodPirate")
5764
            {
5765
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5766
                {
5767
                    killer.BattleFieldsLv111++;
5768
                    if (killer.BattleFieldsLv111 < 301)
5769
                    {
5770
5771
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv111);
5772
                    }
5773
                }
5774
                if (!Player.BattleField.ContainsKey(killer.UID))
5775
                {
5776
                    Player.BattleField.Add(killer.UID, killer.Owner);
5777
                }
5778
                killer.CalculateBattleFieldRankLv111();
5779
                if (Kernel.Rate(10))
5780
                {
5781
                    uint b = 0;
5782
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5783
                    switch (ban)
5784
                    {
5785
                        case 1: b = 729700; break;//PotencyPotion
5786
                        case 2: b = 0; break;
5787
                        case 3: b = 729694; break;//5*AttackPotion
5788
                        case 4: b = 0; break;
5789
                        case 5: b = 0; break;
5790
                        case 6: b = 729695; break;//BosterPoition
5791
                        case 7: b = 0; break;
5792
                        case 8: b = 729696; break;
5793
                        case 9: b = 0; break;
5794
                        case 10: b = 0; break;
5795
                        case 11: b = 0; break;
5796
                        case 12: b = 729697; break;
5797
                        case 13: b = 0; break;
5798
                        case 14: b = 0; break;
5799
                        case 15: b = 729698; break;
5800
                        case 16: b = 0; break;
5801
                        case 17: b = 0; break;
5802
                        case 18: b = 729698; break;
5803
                        case 19: b = 0; break;
5804
                        case 20: b = 0; break;
5805
                        case 21: b = 0; break;
5806
                        case 22: b = 0; break;
5807
                        case 23: b = 0; break;
5808
                        case 24: b = 729700; break;
5809
                        case 25: b = 0; break;
5810
                        case 26: b = 0; break;
5811
                        case 27: b = 729701; break;
5812
                        case 28: b = 0; break;
5813
                        case 29: b = 0; break;
5814
5815
5816
                    }
5817
                    ushort X = Owner.X, Y = Owner.Y;
5818
                    Map Map = Kernel.Maps[Owner.MapID];
5819
                    if (Map.SelectCoordonates(ref X, ref Y))
5820
                    {
5821
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5822
                        MsgMapItem.Item = new MsgItemInfo(true);
5823
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5824
                        MsgMapItem.Item.ID = b;
5825
                        MsgMapItem.Item.MobDropped = true;
5826
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5827
                        MsgMapItem.ItemID = b;
5828
                        MsgMapItem.MapID = Owner.MapID;
5829
                        MsgMapItem.MapObjType = MapObjectType.Item;
5830
                        MsgMapItem.X = X;
5831
                        MsgMapItem.Y = Y;
5832
                        MsgMapItem.Owner = killer.Owner;
5833
                        MsgMapItem.Type = MsgMapItem.Drop;
5834
                        MsgMapItem.OnFloor = Time32.Now;
5835
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5836
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5837
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5838
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5839
                        Map.AddFloorItem(MsgMapItem);
5840
                        SendScreenSpawn(MsgMapItem);
5841
5842
5843
                    }
5844
                }
5845
5846
            }
5847
5848
5849
5850
            #endregion
5851
            #region L118CruelPirate
5852
            if (Name == "L118CruelPirate")
5853
            {
5854
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5855
                {
5856
                    killer.BattleFieldsLv111++;
5857
                    if (killer.BattleFieldsLv111 < 301)
5858
                    {
5859
5860
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv111);
5861
                    }
5862
                }
5863
                if (!Player.BattleField.ContainsKey(killer.UID))
5864
                {
5865
                    Player.BattleField.Add(killer.UID, killer.Owner);
5866
                }
5867
                killer.CalculateBattleFieldRankLv111();
5868
                if (Kernel.Rate(10))
5869
                {
5870
                    uint b = 0;
5871
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5872
                    switch (ban)
5873
                    {
5874
                        case 1: b = 729700; break;//PotencyPotion
5875
                        case 2: b = 0; break;
5876
                        case 3: b = 729694; break;//5*AttackPotion
5877
                        case 4: b = 0; break;
5878
                        case 5: b = 0; break;
5879
                        case 6: b = 729695; break;//BosterPoition
5880
                        case 7: b = 0; break;
5881
                        case 8: b = 729696; break;
5882
                        case 9: b = 0; break;
5883
                        case 10: b = 0; break;
5884
                        case 11: b = 0; break;
5885
                        case 12: b = 729697; break;
5886
                        case 13: b = 0; break;
5887
                        case 14: b = 0; break;
5888
                        case 15: b = 729698; break;
5889
                        case 16: b = 0; break;
5890
                        case 17: b = 0; break;
5891
                        case 18: b = 729698; break;
5892
                        case 19: b = 0; break;
5893
                        case 20: b = 0; break;
5894
                        case 21: b = 0; break;
5895
                        case 22: b = 0; break;
5896
                        case 23: b = 0; break;
5897
                        case 24: b = 729700; break;
5898
                        case 25: b = 0; break;
5899
                        case 26: b = 0; break;
5900
                        case 27: b = 729701; break;
5901
                        case 28: b = 0; break;
5902
                        case 29: b = 0; break;
5903
5904
5905
                    }
5906
                    ushort X = Owner.X, Y = Owner.Y;
5907
                    Map Map = Kernel.Maps[Owner.MapID];
5908
                    if (Map.SelectCoordonates(ref X, ref Y))
5909
                    {
5910
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
5911
                        MsgMapItem.Item = new MsgItemInfo(true);
5912
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
5913
                        MsgMapItem.Item.ID = b;
5914
                        MsgMapItem.Item.MobDropped = true;
5915
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
5916
                        MsgMapItem.ItemID = b;
5917
                        MsgMapItem.MapID = Owner.MapID;
5918
                        MsgMapItem.MapObjType = MapObjectType.Item;
5919
                        MsgMapItem.X = X;
5920
                        MsgMapItem.Y = Y;
5921
                        MsgMapItem.Owner = killer.Owner;
5922
                        MsgMapItem.Type = MsgMapItem.Drop;
5923
                        MsgMapItem.OnFloor = Time32.Now;
5924
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
5925
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5926
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
5927
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
5928
                        Map.AddFloorItem(MsgMapItem);
5929
                        SendScreenSpawn(MsgMapItem);
5930
5931
5932
                    }
5933
                }
5934
5935
            }
5936
5937
5938
5939
            #endregion
5940
            #region L123FierceRonin
5941
            if (Name == "L123FierceRonin")
5942
            {
5943
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
5944
                {
5945
                    killer.BattleFieldsLv121++;
5946
                    if (killer.BattleFieldsLv121 < 301)
5947
                    {
5948
5949
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv121);
5950
                    }
5951
                }
5952
                if (!Player.BattleField.ContainsKey(killer.UID))
5953
                {
5954
                    Player.BattleField.Add(killer.UID, killer.Owner);
5955
                }
5956
                killer.CalculateBattleFieldRankLv121();
5957
                if (Kernel.Rate(10))
5958
                {
5959
                    uint b = 0;
5960
                    uint ban = (uint)Kernel.Random.Next(1, 29);
5961
                    switch (ban)
5962
                    {
5963
                        case 1: b = 729700; break;//PotencyPotion
5964
                        case 2: b = 0; break;
5965
                        case 3: b = 729694; break;//5*AttackPotion
5966
                        case 4: b = 0; break;
5967
                        case 5: b = 0; break;
5968
                        case 6: b = 729695; break;//BosterPoition
5969
                        case 7: b = 0; break;
5970
                        case 8: b = 729696; break;
5971
                        case 9: b = 0; break;
5972
                        case 10: b = 0; break;
5973
                        case 11: b = 0; break;
5974
                        case 12: b = 729697; break;
5975
                        case 13: b = 0; break;
5976
                        case 14: b = 0; break;
5977
                        case 15: b = 729698; break;
5978
                        case 16: b = 0; break;
5979
                        case 17: b = 0; break;
5980
                        case 18: b = 729698; break;
5981
                        case 19: b = 0; break;
5982
                        case 20: b = 0; break;
5983
                        case 21: b = 0; break;
5984
                        case 22: b = 0; break;
5985
                        case 23: b = 0; break;
5986
                        case 24: b = 729700; break;
5987
                        case 25: b = 0; break;
5988
                        case 26: b = 0; break;
5989
                        case 27: b = 729701; break;
5990
                        case 28: b = 0; break;
5991
                        case 29: b = 0; break;
5992
5993
5994
                    }
5995
                    ushort X = Owner.X, Y = Owner.Y;
5996
                    Map Map = Kernel.Maps[Owner.MapID];
5997
                    if (Map.SelectCoordonates(ref X, ref Y))
5998
                    {
5999
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
6000
                        MsgMapItem.Item = new MsgItemInfo(true);
6001
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
6002
                        MsgMapItem.Item.ID = b;
6003
                        MsgMapItem.Item.MobDropped = true;
6004
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
6005
                        MsgMapItem.ItemID = b;
6006
                        MsgMapItem.MapID = Owner.MapID;
6007
                        MsgMapItem.MapObjType = MapObjectType.Item;
6008
                        MsgMapItem.X = X;
6009
                        MsgMapItem.Y = Y;
6010
                        MsgMapItem.Owner = killer.Owner;
6011
                        MsgMapItem.Type = MsgMapItem.Drop;
6012
                        MsgMapItem.OnFloor = Time32.Now;
6013
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6014
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6015
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6016
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6017
                        Map.AddFloorItem(MsgMapItem);
6018
                        SendScreenSpawn(MsgMapItem);
6019
6020
6021
                    }
6022
                }
6023
6024
            }
6025
6026
6027
6028
            #endregion
6029
            #region L128FuryRonin
6030
            if (Name == "L128FuryRonin")
6031
            {
6032
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
6033
                {
6034
                    killer.BattleFieldsLv121++;
6035
                    if (killer.BattleFieldsLv121 < 301)
6036
                    {
6037
6038
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv121);
6039
                    }
6040
                }
6041
                if (!Player.BattleField.ContainsKey(killer.UID))
6042
                {
6043
                    Player.BattleField.Add(killer.UID, killer.Owner);
6044
                }
6045
                killer.CalculateBattleFieldRankLv121();
6046
                if (Kernel.Rate(10))
6047
                {
6048
                    uint b = 0;
6049
                    uint ban = (uint)Kernel.Random.Next(1, 29);
6050
                    switch (ban)
6051
                    {
6052
                        case 1: b = 729700; break;//PotencyPotion
6053
                        case 2: b = 0; break;
6054
                        case 3: b = 729694; break;//5*AttackPotion
6055
                        case 4: b = 0; break;
6056
                        case 5: b = 0; break;
6057
                        case 6: b = 729695; break;//BosterPoition
6058
                        case 7: b = 0; break;
6059
                        case 8: b = 729696; break;
6060
                        case 9: b = 0; break;
6061
                        case 10: b = 0; break;
6062
                        case 11: b = 0; break;
6063
                        case 12: b = 729697; break;
6064
                        case 13: b = 0; break;
6065
                        case 14: b = 0; break;
6066
                        case 15: b = 729698; break;
6067
                        case 16: b = 0; break;
6068
                        case 17: b = 0; break;
6069
                        case 18: b = 729698; break;
6070
                        case 19: b = 0; break;
6071
                        case 20: b = 0; break;
6072
                        case 21: b = 0; break;
6073
                        case 22: b = 0; break;
6074
                        case 23: b = 0; break;
6075
                        case 24: b = 729700; break;
6076
                        case 25: b = 0; break;
6077
                        case 26: b = 0; break;
6078
                        case 27: b = 729701; break;
6079
                        case 28: b = 0; break;
6080
                        case 29: b = 0; break;
6081
6082
6083
                    }
6084
                    ushort X = Owner.X, Y = Owner.Y;
6085
                    Map Map = Kernel.Maps[Owner.MapID];
6086
                    if (Map.SelectCoordonates(ref X, ref Y))
6087
                    {
6088
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
6089
                        MsgMapItem.Item = new MsgItemInfo(true);
6090
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
6091
                        MsgMapItem.Item.ID = b;
6092
                        MsgMapItem.Item.MobDropped = true;
6093
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
6094
                        MsgMapItem.ItemID = b;
6095
                        MsgMapItem.MapID = Owner.MapID;
6096
                        MsgMapItem.MapObjType = MapObjectType.Item;
6097
                        MsgMapItem.X = X;
6098
                        MsgMapItem.Y = Y;
6099
                        MsgMapItem.Owner = killer.Owner;
6100
                        MsgMapItem.Type = MsgMapItem.Drop;
6101
                        MsgMapItem.OnFloor = Time32.Now;
6102
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6103
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6104
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6105
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6106
                        Map.AddFloorItem(MsgMapItem);
6107
                        SendScreenSpawn(MsgMapItem);
6108
6109
6110
                    }
6111
                }
6112
6113
            }
6114
6115
6116
6117
            #endregion
6118
            #region L132Puppet
6119
            if (Name == "L132Puppet")
6120
            {
6121
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
6122
                {
6123
                    killer.BattleFieldsLv131++;
6124
                    if (killer.BattleFieldsLv131 < 301)
6125
                    {
6126
6127
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv131);
6128
                    }
6129
                }
6130
                if (!Player.BattleField.ContainsKey(killer.UID))
6131
                {
6132
                    Player.BattleField.Add(killer.UID, killer.Owner);
6133
                }
6134
                killer.CalculateBattleFieldRankLv131();
6135
                if (Kernel.Rate(10))
6136
                {
6137
                    uint b = 0;
6138
                    uint ban = (uint)Kernel.Random.Next(1, 29);
6139
                    switch (ban)
6140
                    {
6141
                        case 1: b = 729700; break;//PotencyPotion
6142
                        case 2: b = 0; break;
6143
                        case 3: b = 729694; break;//5*AttackPotion
6144
                        case 4: b = 0; break;
6145
                        case 5: b = 0; break;
6146
                        case 6: b = 729695; break;//BosterPoition
6147
                        case 7: b = 0; break;
6148
                        case 8: b = 729696; break;
6149
                        case 9: b = 0; break;
6150
                        case 10: b = 0; break;
6151
                        case 11: b = 0; break;
6152
                        case 12: b = 729697; break;
6153
                        case 13: b = 0; break;
6154
                        case 14: b = 0; break;
6155
                        case 15: b = 729698; break;
6156
                        case 16: b = 0; break;
6157
                        case 17: b = 0; break;
6158
                        case 18: b = 729698; break;
6159
                        case 19: b = 0; break;
6160
                        case 20: b = 0; break;
6161
                        case 21: b = 0; break;
6162
                        case 22: b = 0; break;
6163
                        case 23: b = 0; break;
6164
                        case 24: b = 729700; break;
6165
                        case 25: b = 0; break;
6166
                        case 26: b = 0; break;
6167
                        case 27: b = 729701; break;
6168
                        case 28: b = 0; break;
6169
                        case 29: b = 0; break;
6170
6171
6172
                    }
6173
                    ushort X = Owner.X, Y = Owner.Y;
6174
                    Map Map = Kernel.Maps[Owner.MapID];
6175
                    if (Map.SelectCoordonates(ref X, ref Y))
6176
                    {
6177
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
6178
                        MsgMapItem.Item = new MsgItemInfo(true);
6179
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
6180
                        MsgMapItem.Item.ID = b;
6181
                        MsgMapItem.Item.MobDropped = true;
6182
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
6183
                        MsgMapItem.ItemID = b;
6184
                        MsgMapItem.MapID = Owner.MapID;
6185
                        MsgMapItem.MapObjType = MapObjectType.Item;
6186
                        MsgMapItem.X = X;
6187
                        MsgMapItem.Y = Y;
6188
                        MsgMapItem.Owner = killer.Owner;
6189
                        MsgMapItem.Type = MsgMapItem.Drop;
6190
                        MsgMapItem.OnFloor = Time32.Now;
6191
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6192
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6193
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6194
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6195
                        Map.AddFloorItem(MsgMapItem);
6196
                        SendScreenSpawn(MsgMapItem);
6197
6198
6199
                    }
6200
                }
6201
6202
            }
6203
6204
6205
6206
            #endregion
6207
            #region L135SoulWarrior
6208
            if (Name == "L135SoulWarrior")
6209
            {
6210
                if (killer.Owner.Quests.CheckQuest(QuestID.Battlefield_Heroes, MsgTaskStatus.QuestData.QuestStatus.Accepted))
6211
                {
6212
                    killer.BattleFieldsLv131++;
6213
                    if (killer.BattleFieldsLv131 < 301)
6214
                    {
6215
6216
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Battlefield_Heroes, (uint)killer.BattleFieldsLv131);
6217
                    }
6218
                }
6219
                if (!Player.BattleField.ContainsKey(killer.UID))
6220
                {
6221
                    Player.BattleField.Add(killer.UID, killer.Owner);
6222
                }
6223
                killer.CalculateBattleFieldRankLv131();
6224
                if (Kernel.Rate(10))
6225
                {
6226
                    uint b = 0;
6227
                    uint ban = (uint)Kernel.Random.Next(1, 29);
6228
                    switch (ban)
6229
                    {
6230
                        case 1: b = 729700; break;//PotencyPotion
6231
                        case 2: b = 0; break;
6232
                        case 3: b = 729694; break;//5*AttackPotion
6233
                        case 4: b = 0; break;
6234
                        case 5: b = 0; break;
6235
                        case 6: b = 729695; break;//BosterPoition
6236
                        case 7: b = 0; break;
6237
                        case 8: b = 729696; break;
6238
                        case 9: b = 0; break;
6239
                        case 10: b = 0; break;
6240
                        case 11: b = 0; break;
6241
                        case 12: b = 729697; break;
6242
                        case 13: b = 0; break;
6243
                        case 14: b = 0; break;
6244
                        case 15: b = 729698; break;
6245
                        case 16: b = 0; break;
6246
                        case 17: b = 0; break;
6247
                        case 18: b = 729698; break;
6248
                        case 19: b = 0; break;
6249
                        case 20: b = 0; break;
6250
                        case 21: b = 0; break;
6251
                        case 22: b = 0; break;
6252
                        case 23: b = 0; break;
6253
                        case 24: b = 729700; break;
6254
                        case 25: b = 0; break;
6255
                        case 26: b = 0; break;
6256
                        case 27: b = 729701; break;
6257
                        case 28: b = 0; break;
6258
                        case 29: b = 0; break;
6259
6260
6261
                    }
6262
                    ushort X = Owner.X, Y = Owner.Y;
6263
                    Map Map = Kernel.Maps[Owner.MapID];
6264
                    if (Map.SelectCoordonates(ref X, ref Y))
6265
                    {
6266
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
6267
                        MsgMapItem.Item = new MsgItemInfo(true);
6268
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
6269
                        MsgMapItem.Item.ID = b;
6270
                        MsgMapItem.Item.MobDropped = true;
6271
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
6272
                        MsgMapItem.ItemID = b;
6273
                        MsgMapItem.MapID = Owner.MapID;
6274
                        MsgMapItem.MapObjType = MapObjectType.Item;
6275
                        MsgMapItem.X = X;
6276
                        MsgMapItem.Y = Y;
6277
                        MsgMapItem.Owner = killer.Owner;
6278
                        MsgMapItem.Type = MsgMapItem.Drop;
6279
                        MsgMapItem.OnFloor = Time32.Now;
6280
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6281
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6282
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6283
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6284
                        Map.AddFloorItem(MsgMapItem);
6285
                        SendScreenSpawn(MsgMapItem);
6286
6287
6288
                    }
6289
                }
6290
6291
            }
6292
6293
6294
6295
            #endregion
6296
            #endregion
6297
            #region CloudSaint`sJar
6298
            if (ID == killer.kilid)
6299
            {
6300
                if (killer.Owner.Inventory.Contains(750000, 1))
6301
                {
6302
                    killer.Status4 += 1;
6303
                }
6304
            }
6305
            #endregion
6306
            #region ChestDemon
6307
            uint ran1 = (uint)AboGamil.Kernel.Random.Next(1, 22);
6308
            if (ran1 > 15)
6309
            {
6310
                if (this.Name == "ChestDemon")
6311
                {
6312
                    if (killer.Name.Contains("Guard"))
6313
                        return;
6314
6315
                    uint Uid = 0;
6316
                    Random R = new Random();
6317
                    //int Nr = R.Next(1, 1);
6318
                    switch (((byte)Kernel.Random.Next(1, 8)))
6319
                    {
6320
                        case 1:
6321
                            Uid = 3000625;
6322
                            break;
6323
6324
6325
                        case 2:
6326
                            Uid = 3000626;
6327
                            break;
6328
6329
6330
                        case 3:
6331
                            Uid = 3000627;
6332
                            break;
6333
                    }
6334
6335
                    if (Uid != 0)
6336
                    {
6337
                        ushort X = Owner.X, Y = Owner.Y;
6338
                        Game.Map Map = Kernel.Maps[Owner.MapID];
6339
                        if (Map.SelectCoordonates(ref X, ref Y))
6340
                        {
6341
                            Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
6342
                            floorItem.Item = new Network.GamePackets.MsgItemInfo(true);
6343
                            floorItem.Item.Color = (AboGamil.Game.Enums.Color)Kernel.Random.Next(4, 8);
6344
                            floorItem.Item.ID = Uid;
6345
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
6346
                            floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
6347
                            floorItem.ItemID = Uid;
6348
                            floorItem.MapID = Owner.MapID;
6349
                            floorItem.MapObjType = Game.MapObjectType.Item;
6350
                            floorItem.X = X;
6351
                            floorItem.Y = Y;
6352
                            floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
6353
                            floorItem.OnFloor = Time32.Now;
6354
                            floorItem.ItemColor = floorItem.Item.Color;
6355
                            floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6356
                            while (Map.Npcs.ContainsKey(floorItem.UID))
6357
                                floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6358
                            Map.AddFloorItem(floorItem);
6359
                            SendScreenSpawn(floorItem);
6360
                        }
6361
                    }
6362
                }
6363
            }
6364
            #endregion
6365
            #region Big Monster
6366
            #region SwordMaster
6367
            if (Name == "SwordMaster")
6368
            {
6369
                uint ItemID = 0;
6370
                byte type1 = 11;
6371
                for (int i = 0; i < 5; i++)
6372
                {
6373
                    type1 = (byte)Kernel.Random.Next(1, 11);
6374
                    switch (type1)
6375
                    {
6376
                        case 1:
6377
                            ItemID = 3004181;
6378
                            break;
6379
                        case 2:
6380
                            ItemID = 3004181;
6381
                            break;
6382
                        case 3:
6383
                            ItemID = 3004181;
6384
                            break;
6385
                        case 4:
6386
                            ItemID = 3009002;
6387
                            break;
6388
                        case 5:
6389
                            ItemID = 3009002;
6390
                            break;
6391
                        case 6:
6392
                            ItemID = 3008727;
6393
                            break;
6394
                        case 7:
6395
                            ItemID = 3008727;
6396
                            break;
6397
                        case 8:
6398
                            ItemID = 3009002;
6399
                            break;
6400
                        case 9:
6401
                            ItemID = 3008727;
6402
                            break;
6403
                        case 10:
6404
                            ItemID = 720731;
6405
                            break;
6406
                    }
6407
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
6408
                    ushort X = Owner.X, Y = Owner.Y;
6409
                    Game.Map Map = Kernel.Maps[Owner.MapID];
6410
                    if (Map.SelectCoordonates(ref X, ref Y))
6411
                    {
6412
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
6413
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
6414
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
6415
                        MsgMapItem.Item.ID = ItemID;
6416
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6417
                        MsgMapItem.Item.MaximDurability = infos.Durability;
6418
                        MsgMapItem.Item.Durability = infos.Durability;
6419
                        MsgMapItem.Item.MobDropped = true;
6420
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
6421
                        MsgMapItem.ItemID = ItemID;
6422
                        MsgMapItem.MapID = Owner.MapID;
6423
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
6424
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6425
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6426
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
6427
                        MsgMapItem.OnFloor = Time32.Now;
6428
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6429
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6430
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6431
6432
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6433
6434
                        Map.AddFloorItem(MsgMapItem);
6435
6436
                        SendScreenSpawn(MsgMapItem);
6437
                    }
6438
                }
6439
                return;
6440
            }
6441
            #endregion
6442
            #region PurpleBanshee
6443
            if (Name == "PurpleBanshee")
6444
            {
6445
                uint ItemID = 0;
6446
                byte type1 = 11;
6447
                for (int i = 0; i < 5; i++)
6448
                {
6449
                    type1 = (byte)Kernel.Random.Next(1, 11);
6450
                    switch (type1)
6451
                    {
6452
                        case 1:
6453
                            ItemID = 3004181;
6454
                            break;
6455
                        case 2:
6456
                            ItemID = 3004181;
6457
                            break;
6458
                        case 3:
6459
                            ItemID = 3004181;
6460
                            break;
6461
                        case 4:
6462
                            ItemID = 3009002;
6463
                            break;
6464
                        case 5:
6465
                            ItemID = 3009002;
6466
                            break;
6467
                        case 6:
6468
                            ItemID = 3008727;
6469
                            break;
6470
                        case 7:
6471
                            ItemID = 3008727;
6472
                            break;
6473
                        case 8:
6474
                            ItemID = 3009002;
6475
                            break;
6476
                        case 9:
6477
                            ItemID = 3008727;
6478
                            break;
6479
                        case 10:
6480
                            ItemID = 720731;
6481
                            break;
6482
                    }
6483
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
6484
                    ushort X = Owner.X, Y = Owner.Y;
6485
                    Game.Map Map = Kernel.Maps[Owner.MapID];
6486
                    if (Map.SelectCoordonates(ref X, ref Y))
6487
                    {
6488
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
6489
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
6490
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
6491
                        MsgMapItem.Item.ID = ItemID;
6492
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6493
                        MsgMapItem.Item.MaximDurability = infos.Durability;
6494
                        MsgMapItem.Item.Durability = infos.Durability;
6495
                        MsgMapItem.Item.MobDropped = true;
6496
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
6497
                        MsgMapItem.ItemID = ItemID;
6498
                        MsgMapItem.MapID = Owner.MapID;
6499
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
6500
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6501
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6502
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
6503
                        MsgMapItem.OnFloor = Time32.Now;
6504
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6505
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6506
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6507
6508
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6509
6510
                        Map.AddFloorItem(MsgMapItem);
6511
6512-
               // killer.ConquerPoints += 50000;
6512+
6513-
               // killer.BoundCps += 5000;
6513+
6514-
               // killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated PurpleBanshee on home and got 50,000 ConquerPoints && 5,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6514+
6515
                // killer.ConquerPoints += 50000;
6516
                // killer.BoundCps += 5000;
6517
                // killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated PurpleBanshee on home and got 50,000 ConquerPoints && 5,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6518
                return;
6519
            }
6520
            #endregion
6521
            #region TeratoDragon
6522
            if (Name == "TeratoDragon")
6523
            {
6524
                uint Uid = 0;
6525
                byte type = 51;
6526
                for (int i = 0; i < 3; i++)
6527
                {
6528
                    type = (byte)Kernel.Random.Next(1, 51);
6529
                    switch (type)
6530
                    {
6531
                        case 1:
6532
                            Uid = 800320;
6533
                            break;
6534
6535
                        case 2:
6536
                            Uid = 822054;
6537
                            break;
6538
6539
                        case 3:
6540
                            Uid = 800110;
6541
                            break;
6542
6543
                        case 4:
6544
                            Uid = 820056;
6545
                            break;
6546
6547
                        case 5:
6548
                            Uid = 822056;
6549
                            break;
6550
6551
                        case 6:
6552
                            Uid = 822057;
6553
                            break;
6554
6555
                        case 7:
6556
                            Uid = 822053;
6557
                            break;
6558
6559
                        case 8:
6560
                            Uid = 800019;
6561
                            break;
6562
6563
                        case 9:
6564
                            Uid = 800050;
6565
                            break;
6566
6567
                        case 10:
6568
                            Uid = 800015;
6569
                            break;
6570
6571
                        case 11:
6572
                            Uid = 800090;
6573
                            break;
6574
6575
                        case 12:
6576
                            Uid = 800513;
6577
                            break;
6578
6579
                        case 13:
6580
                            Uid = 800017;
6581
                            break;
6582
6583
                        case 14:
6584
                            Uid = 800071;
6585
                            break;
6586
6587
                        case 15:
6588
                            Uid = 800016;
6589
                            break;
6590
6591
                        case 16:
6592
                            Uid = 823051;
6593
                            break;
6594
6595
                        case 17:
6596
                            Uid = 800130;
6597
                            break;
6598
6599
                        case 18:
6600
                            Uid = 800140;
6601
                            break;
6602
6603
                        case 19:
6604
                            Uid = 800141;
6605
                            break;
6606
6607
                        case 20:
6608
                            Uid = 800200;
6609
                            break;
6610
6611
                        case 21:
6612
                            Uid = 800310;
6613
                            break;
6614
6615
                        case 22:
6616
                            Uid = 800014;
6617
                            break;
6618
6619
                        case 23:
6620
                            Uid = 800214;
6621
                            break;
6622
6623
                        case 24:
6624
                            Uid = 800230;
6625
                            break;
6626
6627
                        case 25:
6628
                            Uid = 800414;
6629
                            break;
6630
6631
                        case 26:
6632
                            Uid = 822052;
6633
                            break;
6634
6635
                        case 27:
6636
                            Uid = 800420;
6637
                            break;
6638
6639
                        case 28:
6640
                            Uid = 800401;
6641
                            break;
6642
6643
                        case 29:
6644
                            Uid = 800512;
6645
                            break;
6646
6647
                        case 30:
6648
                            Uid = 823043;
6649
                            break;
6650
6651
                        case 31:
6652
                            Uid = 800514;
6653
                            break;
6654
6655
                        case 32:
6656
                            Uid = 800520;
6657
                            break;
6658
6659
                        case 33:
6660
                            Uid = 800521;
6661
                            break;
6662
6663
                        case 34:
6664
                            Uid = 800613;
6665
                            break;
6666
6667
                        case 35:
6668
                            Uid = 800614;
6669
                            break;
6670
6671
                        case 36:
6672
                            Uid = 800615;
6673
                            break;
6674
6675
                        case 37:
6676
                            Uid = 824001;
6677
                            break;
6678
6679
                        case 38:
6680
                            Uid = 800617;
6681
                            break;
6682
6683
                        case 39:
6684
                            Uid = 800720;
6685
                            break;
6686
6687
                        case 40:
6688
                            Uid = 800721;
6689
                            break;
6690
6691
                        case 41:
6692
                            Uid = 800070;
6693
                            break;
6694
6695
                        case 42:
6696
                            Uid = 800723;
6697
                            break;
6698
6699
                        case 43:
6700
                            Uid = 800724;
6701
                            break;
6702
6703
                        case 44:
6704
                            Uid = 800018;
6705
                            break;
6706
6707
                        case 45:
6708
                            Uid = 820001;
6709
                            break;
6710
6711
                        case 46:
6712
                            Uid = 820052;
6713
                            break;
6714
6715
                        case 47:
6716
                            Uid = 820053;
6717
                            break;
6718
6719
                        case 48:
6720
                            Uid = 820054;
6721
                            break;
6722
6723
                        case 49:
6724
                            Uid = 820055;
6725
                            break;
6726
6727
                        case 50:
6728
                            Uid = 800722;
6729
                            break;
6730
                        case 51:
6731
                            Uid = 821028;
6732
                            break;
6733
6734
                        case 52:
6735
                            Uid = 824015;
6736
                            break;
6737
6738
                        case 53:
6739
                            Uid = 824016;
6740
                            break;
6741
                        case 54:
6742
                            Uid = 3007108;
6743
                            break;
6744
6745
                    }
6746
                    var infos = Database.ConquerItemInformation.BaseInformations[Uid];
6747
                    ushort X = Owner.X, Y = Owner.Y;
6748
                    Game.Map Map = Kernel.Maps[Owner.MapID];
6749
                    if (Map.SelectCoordonates(ref X, ref Y))
6750
                    {
6751
                        MsgMapItem MsgMapItem = new MsgMapItem(true);
6752
                        MsgMapItem.Item = new MsgItemInfo(true);
6753
                        MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
6754
                        MsgMapItem.Item.ID = Uid;
6755
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6756
                        MsgMapItem.Item.MaximDurability = infos.Durability;
6757
                        MsgMapItem.Item.Durability = infos.Durability;
6758
                        MsgMapItem.Item.MobDropped = true;
6759
                        MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
6760
                        MsgMapItem.ItemID = Uid;
6761
                        MsgMapItem.MapID = Owner.MapID;
6762
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
6763
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6764
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6765
                        MsgMapItem.Type = MsgMapItem.Drop;
6766
                        MsgMapItem.OnFloor = Time32.Now;
6767
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6768
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6769
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6770
                            MsgMapItem.UID = MsgMapItem.FloorUID.Next;
6771
                        Map.AddFloorItem(MsgMapItem);
6772
                        SendScreenSpawn(MsgMapItem);
6773
                        Kernel.Spawn = false;
6774
                        Kernel.SpawnDragon = false;
6775
                    }
6776
                }
6777
                if (Owner.MonsterInfo.ID == 4152)
6778
                {
6779
                    if (Owner.MapID == 1002)
6780
                    {
6781
                        if (Kernel.Maps[1002].Dragon[180810] != null)
6782
                        {
6783
                            Kernel.Maps[1002].AddNpc(Kernel.Maps[1002].Dragon[180810]);
6784
                            Kernel.Maps[1002].Dragon.Remove(180810);
6785
                            var n = Kernel.Maps[1002].Npcs[180810] as Interfaces.IMapObject;
6786
                            killer.Owner.SendScreen(new MsgAction(true)
6787
                            {
6788
                                UID = 180810,
6789
                                ID = MsgAction.Mode.SpawnEffect
6790
                            }, true);
6791
                        }
6792
                    }
6793
                    foreach (var Ownerr in Server.GamePool)
6794
                    {
6795
                        if (Ownerr.Player.MapID == 1002)
6796
                        {
6797
                            foreach (Interfaces.INpc npc in Kernel.Maps[1002].Npcs.Values)
6798
                            {
6799
                                if (npc != null)
6800
                                {
6801
                                    if (npc.UID == 180810)
6802
                                    {
6803
                                        if (Kernel.GetDistance(npc.X, npc.Y, Ownerr.Player.X, Ownerr.Player.Y) < 16)
6804
                                        {
6805
                                            npc.SendSpawn(Ownerr, false);
6806
                                        }
6807
                                    }
6808
                                }
6809
6810
                            }
6811
                        }
6812
                    }
6813
                }
6814
                return;
6815
            }
6816
            #endregion
6817
            #region ChillingSpook
6818-
                    byte type1 = 11;
6818+
6819-
                    for (int i = 0; i < 5; i++)
6819+
6820
                uint ItemID = 0;
6821-
                        type1 = (byte)Kernel.Random.Next(1, 11);
6821+
6822
                for (int i = 0; i < 5; i++)
6823
                {
6824
                    type1 = (byte)Kernel.Random.Next(1, 11);
6825-
                                ItemID = 3004181;
6825+
6826
                    {
6827
                        case 1:
6828-
                                ItemID = 3004181;
6828+
6829
                            break;
6830
                        case 2:
6831-
                                ItemID = 3004181;
6831+
6832
                            break;
6833-
                            case 4:
6833+
6834-
                                ItemID = 3009002;
6834+
6835
                            break;
6836-
                            case 5:
6836+
6837-
                                ItemID = 3009002;
6837+
6838
                            break;
6839-
                            case 6:
6839+
6840-
                                ItemID = 3008727;
6840+
6841
                            break;
6842-
                            case 7:
6842+
6843-
                                ItemID = 3008727;
6843+
6844
                            break;
6845-
                            case 8:
6845+
6846-
                                ItemID = 3009002;
6846+
6847
                            break;
6848-
                            case 9:
6848+
6849-
                                ItemID = 3008727;
6849+
6850
                            break;
6851-
                            case 10:
6851+
6852-
                                ItemID = 720731;
6852+
6853
                            break;
6854
                        case 10:
6855
                            ItemID = 720731;
6856
                            break;
6857
                    }
6858
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
6859
                    ushort X = Owner.X, Y = Owner.Y;
6860
                    Game.Map Map = Kernel.Maps[Owner.MapID];
6861
                    if (Map.SelectCoordonates(ref X, ref Y))
6862-
                            MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
6862+
6863
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
6864-
                            MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6864+
6865
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
6866
                        MsgMapItem.Item.ID = ItemID;
6867
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6868
                        MsgMapItem.Item.MaximDurability = infos.Durability;
6869
                        MsgMapItem.Item.Durability = infos.Durability;
6870
                        MsgMapItem.Item.MobDropped = true;
6871
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
6872-
                            MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6872+
6873-
                            MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6873+
6874
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
6875
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6876
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6877
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
6878
                        MsgMapItem.OnFloor = Time32.Now;
6879
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6880
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6881
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6882
6883
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6884
6885
                        Map.AddFloorItem(MsgMapItem);
6886
6887-
                    //killer.ConquerPoints += 80000;
6887+
6888-
                   // killer.BoundCps += 10000;
6888+
6889-
                    MonsterSpwonBoss.ChillingSpook = false;
6889+
6890-
                    //killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated ChillingSpook and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6890+
6891-
                    return;
6891+
                // killer.BoundCps += 10000;
6892
                MonsterSpwonBoss.ChillingSpook = false;
6893
                //killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated ChillingSpook and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6894
                return;
6895
            }
6896
            #endregion
6897
            #region BloodyBanshee
6898
            if (Name == "BloodyBanshee")
6899
            {
6900
                uint ItemID = 0;
6901
                byte type1 = 11;
6902
                for (int i = 0; i < 5; i++)
6903
                {
6904
                    type1 = (byte)Kernel.Random.Next(1, 11);
6905
                    switch (type1)
6906
                    {
6907
                        case 1:
6908
                            ItemID = 3004181;
6909
                            break;
6910
                        case 2:
6911
                            ItemID = 3004181;
6912
                            break;
6913
                        case 3:
6914
                            ItemID = 3004181;
6915
                            break;
6916
                        case 4:
6917
                            ItemID = 3009002;
6918
                            break;
6919
                        case 5:
6920
                            ItemID = 3009002;
6921
                            break;
6922
                        case 6:
6923
                            ItemID = 3008727;
6924
                            break;
6925
                        case 7:
6926
                            ItemID = 3008727;
6927
                            break;
6928
                        case 8:
6929
                            ItemID = 3009002;
6930
                            break;
6931
                        case 9:
6932
                            ItemID = 3008727;
6933
                            break;
6934
                        case 10:
6935
                            ItemID = 720731;
6936
                            break;
6937
                    }
6938
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
6939
                    ushort X = Owner.X, Y = Owner.Y;
6940
                    Game.Map Map = Kernel.Maps[Owner.MapID];
6941
                    if (Map.SelectCoordonates(ref X, ref Y))
6942
                    {
6943
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
6944
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
6945
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
6946
                        MsgMapItem.Item.ID = ItemID;
6947
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
6948
                        MsgMapItem.Item.MaximDurability = infos.Durability;
6949
                        MsgMapItem.Item.Durability = infos.Durability;
6950
                        MsgMapItem.Item.MobDropped = true;
6951
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
6952
                        MsgMapItem.ItemID = ItemID;
6953
                        MsgMapItem.MapID = 10137;
6954
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
6955
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
6956
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
6957
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
6958
                        MsgMapItem.OnFloor = Time32.Now;
6959
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
6960
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6961
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
6962
6963
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
6964
6965
                        Map.AddFloorItem(MsgMapItem);
6966
6967-
               // killer.ConquerPoints += 80000;
6967+
6968-
               // killer.BoundCps += 10000;
6968+
6969
                }
6970-
              //  killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated BloodyBanshee and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6970+
                // killer.ConquerPoints += 80000;
6971
                // killer.BoundCps += 10000;
6972
                MonsterSpwonBoss.BloodyBanshee = false;
6973
                //  killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated BloodyBanshee and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
6974
                return;
6975
            }
6976
            #endregion
6977
            #region DragonWraith
6978
            if (Name == "DragonWraith")
6979
            {
6980
                uint ItemID = 0;
6981
                byte type1 = 11;
6982
                for (int i = 0; i < 5; i++)
6983
                {
6984
                    type1 = (byte)Kernel.Random.Next(1, 11);
6985
                    switch (type1)
6986
                    {
6987
                        case 1:
6988
                            ItemID = 3004181;
6989
                            break;
6990
                        case 2:
6991
                            ItemID = 3004181;
6992
                            break;
6993
                        case 3:
6994
                            ItemID = 3004181;
6995
                            break;
6996
                        case 4:
6997
                            ItemID = 3009002;
6998
                            break;
6999
                        case 5:
7000
                            ItemID = 3009002;
7001
                            break;
7002
                        case 6:
7003
                            ItemID = 3008727;
7004
                            break;
7005
                        case 7:
7006
                            ItemID = 3008727;
7007
                            break;
7008
                        case 8:
7009
                            ItemID = 3009002;
7010
                            break;
7011
                        case 9:
7012
                            ItemID = 3008727;
7013
                            break;
7014
                        case 10:
7015
                            ItemID = 720731;
7016
                            break;
7017
                    }
7018
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7019
                    ushort X = Owner.X, Y = Owner.Y;
7020
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7021
                    if (Map.SelectCoordonates(ref X, ref Y))
7022
                    {
7023
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7024
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7025
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7026
                        MsgMapItem.Item.ID = ItemID;
7027
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7028
                        MsgMapItem.Item.MaximDurability = infos.Durability;
7029
                        MsgMapItem.Item.Durability = infos.Durability;
7030
                        MsgMapItem.Item.MobDropped = true;
7031
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7032
                        MsgMapItem.ItemID = ItemID;
7033
                        MsgMapItem.MapID = 10137;
7034
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
7035
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
7036
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
7037
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7038
                        MsgMapItem.OnFloor = Time32.Now;
7039
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7040
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7041
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7042
7043
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7044
7045
                        Map.AddFloorItem(MsgMapItem);
7046
7047
                        SendScreenSpawn(MsgMapItem);
7048
                    }
7049
                }
7050
                //killer.ConquerPoints += 80000;
7051
                //killer.BoundCps += 10000;
7052
                //killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated DragonWraith and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7053
                MonsterSpwonBoss.DragonWraith = false;
7054
                return;
7055
            }
7056
            #endregion
7057
            #region QueenofEvil
7058-
                    byte type1 = 11;
7058+
7059-
                    for (int i = 0; i < 10; i++)
7059+
7060
                uint ItemID = 0;
7061-
                        type1 = (byte)Kernel.Random.Next(1, 11);
7061+
7062
                for (int i = 0; i < 10; i++)
7063
                {
7064
                    type1 = (byte)Kernel.Random.Next(1, 11);
7065-
                                ItemID = 3004181;
7065+
7066
                    {
7067
                        case 1:
7068-
                                ItemID = 3004181;
7068+
7069
                            break;
7070
                        case 2:
7071-
                                ItemID = 3004181;
7071+
7072
                            break;
7073-
                            case 4:
7073+
7074-
                                ItemID = 3009002;
7074+
7075
                            break;
7076-
                            case 5:
7076+
7077-
                                ItemID = 3009002;
7077+
7078
                            break;
7079-
                            case 6:
7079+
7080-
                                ItemID = 3008727;
7080+
7081
                            break;
7082-
                            case 7:
7082+
7083-
                                ItemID = 3008727;
7083+
7084
                            break;
7085-
                            case 8:
7085+
7086-
                                ItemID = 3009002;
7086+
7087
                            break;
7088-
                            case 9:
7088+
7089-
                                ItemID = 3008727;
7089+
7090
                            break;
7091-
                            case 10:
7091+
7092-
                                ItemID = 720731;
7092+
7093
                            break;
7094
                        case 10:
7095
                            ItemID = 720731;
7096
                            break;
7097
                    }
7098
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7099
                    ushort X = Owner.X, Y = Owner.Y;
7100
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7101
                    if (Map.SelectCoordonates(ref X, ref Y))
7102
                    {
7103
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7104
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7105
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7106
                        MsgMapItem.Item.ID = ItemID;
7107
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7108
                        MsgMapItem.Item.MaximDurability = infos.Durability;
7109
                        MsgMapItem.Item.Durability = infos.Durability;
7110
                        MsgMapItem.Item.MobDropped = true;
7111
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7112
                        MsgMapItem.ItemID = ItemID;
7113
                        MsgMapItem.MapID = 10137;
7114
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
7115
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
7116
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
7117
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7118
                        MsgMapItem.OnFloor = Time32.Now;
7119
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7120
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7121
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7122
7123
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7124
7125
                        Map.AddFloorItem(MsgMapItem);
7126
7127-
                      killer.ConquerPoints += 500000;
7127+
7128-
                      killer.BoundCps += 50000;
7128+
7129-
                    MonsterSpwonBoss.QueenofEvil = false;
7129+
7130-
                     killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated QueenofEvil and got 500,000 ConquerPoints && 50,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7130+
                killer.ConquerPoints += 500000;
7131-
                    return;
7131+
                killer.BoundCps += 50000;
7132
                MonsterSpwonBoss.QueenofEvil = false;
7133
                killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated QueenofEvil and got 500,000 ConquerPoints && 50,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7134
                return;
7135-
                if (Name == "NetherTyrant")
7135+
7136
            #endregion
7137
            #region NetherTyrant
7138
            if (Name == "NetherTyrant")
7139
            {
7140
                uint ItemID = 0;
7141
                byte type1 = 11;
7142
                for (int i = 0; i < 5; i++)
7143
                {
7144
                    type1 = (byte)Kernel.Random.Next(1, 11);
7145
                    switch (type1)
7146
                    {
7147
                        case 1:
7148
                            ItemID = 3004181;
7149
                            break;
7150
                        case 2:
7151
                            ItemID = 3004181;
7152
                            break;
7153
                        case 3:
7154
                            ItemID = 3004181;
7155
                            break;
7156
                        case 4:
7157
                            ItemID = 3009002;
7158
                            break;
7159
                        case 5:
7160
                            ItemID = 3009002;
7161
                            break;
7162
                        case 6:
7163
                            ItemID = 3008727;
7164
                            break;
7165
                        case 7:
7166
                            ItemID = 3008727;
7167
                            break;
7168
                        case 8:
7169
                            ItemID = 3009002;
7170
                            break;
7171
                        case 9:
7172
                            ItemID = 3008727;
7173
                            break;
7174
                        case 10:
7175
                            ItemID = 720731;
7176
                            break;
7177
                    }
7178
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7179
                    ushort X = Owner.X, Y = Owner.Y;
7180
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7181
                    if (Map.SelectCoordonates(ref X, ref Y))
7182
                    {
7183
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7184
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7185
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7186
                        MsgMapItem.Item.ID = ItemID;
7187
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7188
                        MsgMapItem.Item.MaximDurability = infos.Durability;
7189
                        MsgMapItem.Item.Durability = infos.Durability;
7190
                        MsgMapItem.Item.MobDropped = true;
7191
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7192
                        MsgMapItem.ItemID = ItemID;
7193
                        MsgMapItem.MapID = 10137;
7194
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
7195
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 8));
7196
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 7));
7197
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7198
                        MsgMapItem.OnFloor = Time32.Now;
7199
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7200
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7201
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7202
7203
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7204
7205
                        Map.AddFloorItem(MsgMapItem);
7206
7207-
               // killer.ConquerPoints += 80000;
7207+
7208-
               // killer.BoundCps += 10000;
7208+
7209-
              //  killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated NetherTyrant and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7209+
7210
                // killer.ConquerPoints += 80000;
7211
                // killer.BoundCps += 10000;
7212
                //  killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated NetherTyrant and got 80,000 ConquerPoints && 10,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7213
                MonsterSpwonBoss.NetherTyrant = false;
7214
                return;
7215
            }
7216
            #endregion
7217
            #region ThunderDragon
7218
            if (Name == "ThunderDragon")
7219
            {
7220
                uint ItemID = 0;
7221
                byte type1 = 19;
7222
                for (int i = 0; i < 5; i++)
7223
                {
7224
                    type1 = (byte)Kernel.Random.Next(1, 19);
7225
                    switch (type1)
7226
                    {
7227
                        case 1:
7228
                            ItemID = 3309945;
7229
                            break;
7230
                        case 2:
7231
                            ItemID = 3309946;
7232
                            break;
7233
                        case 3:
7234
                            ItemID = 3309947;
7235
                            break;
7236
                        case 4:
7237
                            ItemID = 3309948;
7238
                            break;
7239
                        case 5:
7240
                            ItemID = 3309949;
7241
                            break;
7242
                        case 6:
7243
                            ItemID = 3309950;
7244
                            break;
7245
                        case 7:
7246
                            ItemID = 3309951;
7247
                            break;
7248
                        case 8:
7249
                            ItemID = 3309952;
7250
                            break;
7251
                        case 9:
7252
                            ItemID = 3309953;
7253
                            break;
7254
                        case 10:
7255
                            ItemID = 3309954;
7256
                            break;
7257
                        case 11:
7258
                            ItemID = 3309955;
7259
                            break;
7260
                        case 12:
7261
                            ItemID = 3309956;
7262
                            break;
7263
                        case 13:
7264
                            ItemID = 3309957;
7265
                            break;
7266
                        case 14:
7267
                            ItemID = 3309958;
7268
                            break;
7269
                        case 15:
7270
                            ItemID = 3309959;
7271
                            break;
7272
                        case 16:
7273
                            ItemID = 3309960;
7274
                            break;
7275
                        case 17:
7276-
                              }
7276+
7277
                            break;
7278
7279
                    }
7280
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7281
                    ushort X = Owner.X, Y = Owner.Y;
7282
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7283
                    if (Map.SelectCoordonates(ref X, ref Y))
7284
                    {
7285
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7286
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7287
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7288
                        MsgMapItem.Item.ID = ItemID;
7289
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7290
                        MsgMapItem.Item.MaximDurability = infos.Durability;
7291
                        MsgMapItem.Item.Durability = infos.Durability;
7292
                        MsgMapItem.Item.MobDropped = true;
7293
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7294
                        MsgMapItem.ItemID = ItemID;
7295
                        MsgMapItem.MapID = 10137;
7296
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
7297
                        MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 9));
7298
                        MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 8));
7299
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7300
                        MsgMapItem.OnFloor = Time32.Now;
7301
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7302
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7303
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7304
7305
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7306
7307
                        Map.AddFloorItem(MsgMapItem);
7308
7309
                        SendScreenSpawn(MsgMapItem);
7310
                    }
7311
                }
7312
7313
                if (Kernel.Rate(25))
7314
                {
7315
                    for (int i = 0; i < 1; i++)
7316
                    {
7317
                        type1 = (byte)Kernel.Random.Next(1, 4);
7318
                        switch (type1)
7319
                        {
7320
                            case 1:
7321
                                ItemID = 3300053;
7322
                                break;
7323
                            case 2:
7324
                                ItemID = 3300054;
7325
                                break;
7326
                            case 3:
7327
                                ItemID = 3300055;
7328
                                break;
7329
7330
                        }
7331
                        var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7332
                        ushort X = Owner.X, Y = Owner.Y;
7333
                        Game.Map Map = Kernel.Maps[Owner.MapID];
7334
                        if (Map.SelectCoordonates(ref X, ref Y))
7335
                        {
7336
                            Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7337
                            MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7338
                            MsgMapItem.Item.Color = (AboGamil.Game.Enums.Color)Kernel.Random.Next(4, 8);
7339
                            MsgMapItem.Item.ID = ItemID;
7340
                            //MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7341
                            MsgMapItem.Item.MaximDurability = infos.Durability;
7342
                            MsgMapItem.Item.Durability = infos.Durability;
7343
                            MsgMapItem.Item.MobDropped = true;
7344
                            MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7345
                            MsgMapItem.ItemID = ItemID;
7346
                            MsgMapItem.MapID = 10137;
7347
                            MsgMapItem.MapObjType = Game.MapObjectType.Item;
7348
                            MsgMapItem.X = (ushort)(X + Kernel.Random.Next((ushort)0, 10));
7349
                            MsgMapItem.Y = (ushort)(Y + Kernel.Random.Next((ushort)0, 8));
7350
                            MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7351
                            MsgMapItem.OnFloor = Time32.Now;
7352
                            MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7353
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7354
                            while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7355
7356
                                MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7357
7358
                            Map.AddFloorItem(MsgMapItem);
7359
7360
                            SendScreenSpawn(MsgMapItem);
7361-
               // killer.ConquerPoints += 100000;
7361+
7362-
               // killer.BoundCps += 30000;
7362+
7363-
               // killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated ThunderDragon and got 100,000 ConquerPoints && 30,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7363+
7364
                // killer.ConquerPoints += 100000;
7365
                // killer.BoundCps += 30000;
7366
                // killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated ThunderDragon and got 100,000 ConquerPoints && 30,000 BoundCps.", System.Drawing.Color.Azure, MsgTalk.Center));
7367
                MonsterSpwonBoss.ThunderDragon = false;
7368
                return;
7369
            }
7370
            #endregion
7371
            #region GoldBox Money
7372
            if (Name == "GoldBox")
7373
            {
7374
7375
                uint amount = (uint)Kernel.Random.Next((int)MinMoneyDropAmount, (int)MaxMoneyDropAmount);
7376
                amount *= Constants.MoneyDropMultiple;
7377
                if (amount > 2000)
7378
                    amount = 1000;
7379
                if (amount == 0) return;
7380
                uint ItemID = ItemHandler.MoneyItemID(amount);
7381
7382
                ushort X = Owner.X, Y = Owner.Y;
7383
                Game.Map Map = Kernel.Maps[Owner.MapID];
7384
                if (Map.SelectCoordonates(ref X, ref Y))
7385
                {
7386
                    Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7387
                    MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Money;
7388
                    MsgMapItem.Value = amount;
7389
                    MsgMapItem.ItemID = ItemID;
7390
                    MsgMapItem.MapID = Owner.MapID;
7391
                    MsgMapItem.MapObjType = Game.MapObjectType.Item;
7392
                    MsgMapItem.X = X;
7393
                    MsgMapItem.Y = Y;
7394
                    MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7395
                    MsgMapItem.OnFloor = Time32.Now;
7396
                    MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7397
                    while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7398
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7399
                    Map.AddFloorItem(MsgMapItem);
7400
                    SendScreenSpawn(MsgMapItem);
7401
                }
7402
            }
7403
7404
7405
            #endregion
7406
            #region GoldBox
7407
            if (Name == "GoldBox")
7408
            {
7409
                uint ItemID = 0;
7410
                byte type1 = 11;
7411
                for (int i = 0; i < 2; i++)
7412
                {
7413
                    type1 = (byte)Kernel.Random.Next(1, 6);
7414
                    switch (type1)
7415
                    {
7416
                        case 1:
7417
                            ItemID = 3004233;//AntiBreak 
7418
                            break;
7419
7420
                        case 2:
7421
                            ItemID = 3004234;//Immunity
7422
                            break;
7423
7424
                        case 3:
7425
                            ItemID = 3004233;//AntiBreak 
7426
                            break;
7427
7428
                        case 4:
7429
                            ItemID = 3004234;//Immunity
7430
                            break;
7431
                        case 5:
7432
                            ItemID = 3004233;//AntiBreak 
7433
                            break;
7434
7435
                        case 6:
7436
                            ItemID = 3004234;//Immunity
7437
                            break;
7438
                    }
7439
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7440
                    ushort X = Owner.X, Y = Owner.Y;
7441
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7442
                    if (Map.SelectCoordonates(ref X, ref Y))
7443
                    {
7444
                        Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true);
7445
                        MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true);
7446
                        MsgMapItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(2, 4);
7447
                        MsgMapItem.Item.ID = ItemID;
7448
                        MsgMapItem.Item.Plus = MsgMapItem.Item.Plus;
7449
                        MsgMapItem.Item.MaximDurability = infos.Durability;
7450
                        MsgMapItem.Item.Durability = infos.Durability;
7451
                        MsgMapItem.Item.MobDropped = true;
7452
7453
                        MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7454
                        MsgMapItem.ItemID = ItemID;
7455
                        MsgMapItem.MapID = Owner.MapID;
7456
                        MsgMapItem.MapObjType = Game.MapObjectType.Item;
7457
                        MsgMapItem.X = X;
7458
                        MsgMapItem.Y = Y;
7459
                        MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop;
7460
                        MsgMapItem.OnFloor = Time32.Now;
7461
                        MsgMapItem.ItemColor = MsgMapItem.Item.Color;
7462
                        MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7463
                        while (Map.Npcs.ContainsKey(MsgMapItem.UID))
7464
7465
                            MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7466
7467
                        Map.AddFloorItem(MsgMapItem);
7468
7469
                        SendScreenSpawn(MsgMapItem);
7470
7471
7472
                    }
7473
                }
7474
7475
                #region Place Messge
7476
                if (Database.MonsterSpawn.mapxy == 1)
7477
                {
7478
                    killer.Owner.MessageBox("The~Nemesis~Tyrant~is~about~to~show~up~in~the~Bloodshed~Sea~(291,349)!");
7479
                }
7480
                if (Database.MonsterSpawn.mapxy == 2)
7481
                {
7482
                    killer.Owner.MessageBox("The~Nemesis~Tyrant~is~about~to~show~up~in~the~Bloodshed~Sea~(164,270)!");
7483
                }
7484
                if (Database.MonsterSpawn.mapxy == 3)
7485
                {
7486
                    killer.Owner.MessageBox("The~Nemesis~Tyrant~is~about~to~show~up~in~the~Bloodshed~Sea~(118,181)!");
7487
                }
7488
                if (Database.MonsterSpawn.mapxy == 4)
7489
                {
7490
                    killer.Owner.MessageBox("The~Nemesis~Tyrant~is~about~to~show~up~in~the~Bloodshed~Sea~(137,088)!");
7491
                }
7492
                if (Database.MonsterSpawn.mapxy == 5)
7493
                {
7494
                    killer.Owner.MessageBox("The~Nemesis~Tyrant~is~about~to~show~up~in~the~Bloodshed~Sea~(229,106)!");
7495
                }
7496
                #endregion
7497
                Kernel.goldbox = false;
7498
                if (killer.Owner.Quests.HasQuest(QuestID.GoldBox))
7499
                {
7500
                    if ((killer.Owner.Quests.CheckQuest(QuestID.GoldBox) == AboGamil.Network.GamePackets.MsgTaskStatus.QuestData.QuestStatus.Accepted))
7501
                    {
7502
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.GoldBox, 1);
7503
                        killer.Owner.Player.GoldBox = 1;
7504
                    }
7505
                }
7506
                killer.Owner.Inventory.AddTime(3004296);
7507
                killer.Owner.Inventory.AddTime(3004296);
7508-
            #endregion         
7508+
7509
            }
7510
7511
            #endregion
7512
            #region LavaBeast
7513
            if (Name == "LavaBeast")
7514
            {
7515
                killer.Owner.Send(new MsgTalk("Congratulations! " + killer.Name + " has defeated LavaBeast and got random of materials.", System.Drawing.Color.Azure, MsgTalk.Center));
7516
                uint ItemID = 0;
7517
                byte type1 = 27;
7518
                for (int i = 0; i < 1; i++)
7519
                {
7520
                    type1 = (byte)Kernel.Random.Next(1, 27);
7521
                    switch (type1)
7522
                    {
7523
                        case 1:
7524
                            ItemID = 724352;
7525
                            break;
7526
                        case 2:
7527
                            ItemID = 724357;
7528
                            break;
7529
                        case 3:
7530
                            ItemID = 724362;
7531
                            break;
7532
                        case 4:
7533
                            ItemID = 724367;
7534
                            break;
7535
                        case 5:
7536
                            ItemID = 724372;
7537
                            break;
7538
                        case 6:
7539
                            ItemID = 724377;
7540
                            break;
7541
                        case 7:
7542
                            ItemID = 724384;
7543
                            break;
7544
                        case 8:
7545
                            ItemID = 724389;
7546
                            break;
7547
                        case 9:
7548
                            ItemID = 724394;
7549
                            break;
7550
                        case 10:
7551
                            ItemID = 724404;
7552
                            break;
7553
                        case 11:
7554
                            ItemID = 724409;
7555
                            break;
7556
                        case 12:
7557
                            ItemID = 724414;
7558
                            break;
7559
                        case 13:
7560
                            ItemID = 724419;
7561
                            break;
7562
                        case 14:
7563
                            ItemID = 724424;
7564
                            break;
7565
                        case 15:
7566
                            ItemID = 724429;
7567
                            break;
7568
                        case 16:
7569
                            ItemID = 724434;
7570
                            break;
7571
                        case 17:
7572
                            ItemID = 724439;
7573
                            break;
7574
                        case 18:
7575
                            ItemID = 724444;
7576
                            break;
7577
                        case 19:
7578
                            ItemID = 724453;
7579
                            break;
7580
                        case 20:
7581
                            ItemID = 724458;
7582
                            break;
7583
                        case 21:
7584
                            ItemID = 724463;
7585
                            break;
7586
                        case 22:
7587
                            ItemID = 724477;
7588
                            break;
7589
                        case 23:
7590
                            ItemID = 724482;
7591
                            break;
7592
                        case 24:
7593
                            ItemID = 724487;
7594
                            break;
7595
                        case 25:
7596
                            ItemID = 724492;
7597
                            break;
7598
                        case 26:
7599
                            ItemID = 724497;
7600
                            break;
7601
                        case 27:
7602
                            ItemID = 724502;
7603
                            break;
7604
                    }
7605
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
7606
                    ushort X = Owner.X, Y = Owner.Y;
7607
                    Game.Map Map = Kernel.Maps[Owner.MapID];
7608
                    if (Map.SelectCoordonates(ref X, ref Y))
7609
                    {
7610
                        Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
7611
                        floorItem.Item = new Network.GamePackets.MsgItemInfo(true);
7612
                        floorItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7613
                        floorItem.Item.ID = ItemID;
7614
                        floorItem.Item.Plus = floorItem.Item.Plus;
7615
                        floorItem.Item.MaximDurability = infos.Durability;
7616
                        floorItem.Item.StackSize = 1;
7617-
                        
7617+
7618
                        floorItem.Item.Durability = infos.Durability;
7619
                        floorItem.Item.MobDropped = true;
7620
7621
                        floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7622
                        floorItem.ItemID = ItemID;
7623
                        floorItem.MapID = Owner.MapID;
7624-
                        
7624+
7625
                        floorItem.X = X;
7626
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
7627
7628
                        floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
7629
                        floorItem.OnFloor = Time32.Now;
7630
                        floorItem.ItemColor = floorItem.Item.Color;
7631
                        floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7632
                        while (Map.Npcs.ContainsKey(floorItem.UID))
7633
7634
                            floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7635
7636
                        Map.AddFloorItem(floorItem);
7637
7638
                        SendScreenSpawn(floorItem);
7639-
            #endregion            
7639+
7640
                }
7641
            }
7642
            #endregion
7643
            #region Ganoderma and titan
7644
            if (Name.Contains("Ganoderma") || Name.Contains("Titan"))
7645
            {
7646-
            #endregion            
7646+
7647
            }
7648
            #endregion
7649
            #endregion
7650
            #region BrightFortune
7651
            #region AngerRat
7652
            if (Name == "AngerRat")
7653
            {
7654
7655
                #region AngerRat
7656
                killer.Owner.Quests.IncreaseQuestKills(QuestID.BloodVengeance, 1);
7657
                if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills < 10)
7658
                {
7659
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.BloodVengeance, 1);
7660
                }
7661
                else if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills >= 10)
7662
                {
7663
                    killer.Owner.MessageBox("You`ve eliminated enough number of Anger Rats. Hurry and report back to Chong Yan Elder!",
7664
                       p =>
7665
                       {
7666
                           MsgAction data = new MsgAction(true);
7667
                           data.UID = p.Player.UID;
7668
                           data.TimeStamp2 = 19163;
7669
                           data.ID = (MsgAction.Mode)162;
7670
                           data.wParam1 = 142;
7671
                           data.wParam2 = 320;
7672
                           p.Send(data);
7673
                       }, null);
7674
                }
7675
                #endregion
7676
            }
7677
            #endregion
7678
            #region FlameRockMonste
7679
            if (Name.Contains("FlameRockMonste"))
7680
            {
7681
                #region FlameRockMonste
7682
                if (killer.Owner.Inventory.Contains(3008752, 8))
7683
                {
7684
7685
                    killer.Owner.MessageBox("You`ve collected enough number of Rune Fragments. Go and try to complete the runes on the Forge Furnace.",
7686
                        p =>
7687
                        {
7688
                            MsgAction data = new MsgAction(true);
7689
                            data.UID = p.Player.UID;
7690
                            data.TimeStamp2 = 19163;
7691
                            data.ID = (MsgAction.Mode)162;
7692
                            data.wParam1 = 311;
7693
                            data.wParam2 = 449;
7694
                            p.Send(data);
7695
                        }, null);
7696
                }
7697
                else
7698
                {
7699
                    if (Kernel.Rate(20))
7700
                    {
7701
7702
                        killer.Owner.Inventory.Add(3008752, 0, 1);
7703
                        MsgName str = new MsgName(true);
7704
                        str.UID = killer.Owner.Player.UID;
7705
                        str.TextsCount = 1;
7706
                        str.Type = (int)MsgName.Mode.Effect;
7707
                        str.Texts.Add("zf2-e123");
7708
                        killer.Owner.SendScreen(str, true);
7709
7710
                    }
7711
7712
                }
7713
                #endregion
7714
            }
7715
            #endregion
7716
            #region VioletBatKing
7717
            if (Name == "VioletBatKing")
7718
            {
7719
                #region VioletBatKing
7720
                if (!killer.Owner.Inventory.Contains(3008750, 1) && killer.Owner.Quests.GetQuest(QuestID.SecretOfBright) != null)
7721
                {
7722
                    killer.Owner.Inventory.Add(3008750, 0, 1);
7723
                    killer.Owner.MessageBox("The Violet Bat King fell down and dropped an ancient-style hammer. Hurry and take this hammer to the Forge Furnace.",
7724
                        p =>
7725
                        {
7726
                            MsgAction data = new MsgAction(true);
7727
                            data.UID = p.Player.UID;
7728
                            data.TimeStamp2 = 19165;
7729
                            data.ID = (MsgAction.Mode)162;
7730
                            data.wParam1 = 311;
7731
                            data.wParam2 = 449;
7732
                            p.Send(data);
7733
                        }, null);
7734
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.SecretOfBright, 1);
7735
                }
7736
                #endregion
7737
            }
7738
            #endregion
7739
            #region LavaScorpion
7740
            if (Name == "LavaScorpion")
7741
            {
7742
                #region LavaScorpion
7743
                if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills >= 15)
7744
                {
7745
                    killer.Owner.MessageBox("You`ve defeated enough number of Lava Scorpions. Now, you can appease the sacrificed Bright people.",
7746
                       p =>
7747
                       {
7748
                           MsgAction data = new MsgAction(true);
7749
                           data.UID = p.Player.UID;
7750
                           data.TimeStamp2 = 19165;
7751
                           data.ID = (MsgAction.Mode)162;
7752
                           data.wParam1 = 251;
7753
                           data.wParam2 = 277;
7754
                           p.Send(data);
7755
                       }, null);
7756
                }
7757
                else if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills1 < 15)
7758
                {
7759
                    killer.Owner.Quests.IncreaseQuestKills5(QuestID.SacrificetotheDead, 1);
7760
7761
                }
7762
                #endregion
7763
            }
7764
            #endregion
7765
            #region RoaringSnake
7766
            if (Name == "RoaringSnake")
7767
            {
7768
                #region RoaringSnake
7769
                if (killer.Owner.Inventory.Contains(3008742, 50) && killer.Owner.Quests.GetQuest(QuestID.SorrowofDesolation) != null)
7770
                {
7771
                    killer.Owner.MessageBox("You`ve collect enough number of Building Stones. Go and try to restore the ruined altar.",
7772
                       p =>
7773
                       {
7774
                           MsgAction data = new MsgAction(true);
7775
                           data.UID = p.Player.UID;
7776
                           data.TimeStamp2 = 19165;
7777
                           data.ID = (MsgAction.Mode)162;
7778
                           data.wParam1 = 578;
7779
                           data.wParam2 = 419;
7780
                           p.Send(data);
7781
                       }, null);
7782
                }
7783
                else
7784
                {
7785
                    killer.Owner.Inventory.Add(3008742, 0, 1);
7786
                }
7787
                #endregion
7788
            }
7789
            #endregion
7790
            #region ClawedRockDevil
7791
            if (Name == "ClawedRockDevil")
7792
            {
7793
                #region ClawedRockDevil
7794
                if (killer.Owner.Inventory.Contains(3008743, 1))
7795
                {
7796
                }
7797
                else
7798
                {
7799
7800
                    if (Kernel.Rate(40))
7801
                    {
7802
                        killer.Owner.Inventory.Add(3008743, 0, 1);
7803
                        killer.Owner.MessageBox("You`ve retrieved the Wheel of Nature from the Clawed Rock Devil. Hurry and take the next action at the altar.",
7804
                           p =>
7805
                           {
7806
                               MsgAction data = new MsgAction(true);
7807
                               data.UID = p.Player.UID;
7808
                               data.TimeStamp2 = 19165;
7809
                               data.ID = (MsgAction.Mode)162;
7810
                               data.wParam1 = 573;
7811
                               data.wParam2 = 423;
7812
                               p.Send(data);
7813
                           }, null);
7814
7815
                    }
7816
                }
7817
                #endregion
7818
            }
7819
            #endregion
7820
            #region HornedRockBeast
7821
            if (Name == "HornedRockBeast")
7822
            {
7823
                #region HornedRockBeast
7824
                if (!killer.Owner.Inventory.Contains(3008745, 1))
7825
                {
7826
                    if (killer.Owner.Inventory.Contains(3008754, 5))
7827
                    {
7828
7829
                        killer.Owner.Inventory.Add(3008745, 0, 1);
7830
                        killer.Owner.Inventory.Remove(3008754, 5);
7831
                        killer.Owner.MessageBox("You received the Earth Force! Hurry and transform it into Metal Force through the Wheel of Nature!",
7832
                           p =>
7833
                           {
7834
                               MsgAction data = new MsgAction(true);
7835
                               data.UID = p.Player.UID;
7836
                               data.TimeStamp2 = 19165;
7837
                               data.ID = (MsgAction.Mode)162;
7838
                               data.wParam1 = 578;
7839
                               data.wParam2 = 419;
7840
                               p.Send(data);
7841
                           }, null);
7842
7843
                    }
7844
                    else
7845
                    {
7846
7847
                        if (Kernel.Rate(40))
7848
                        {
7849
                            killer.Owner.Inventory.Add(3008754, 0, 1);
7850
7851
                        }
7852
                    }
7853
                }
7854
                #endregion
7855
            }
7856
            #endregion
7857
            #region HellfireBeast
7858
            if (Name == "HellfireBeast")
7859
            {
7860
                #region HellfireBeast
7861
                if (killer.Owner.Inventory.Contains(3008748, 100))
7862
                {
7863
                    killer.Owner.MessageBox("You`ve collected enough number of Star Ores. Go and try to extract the Essence of Star at the altar.",
7864
                       p =>
7865
                       {
7866
                           MsgAction data = new MsgAction(true);
7867
                           data.UID = p.Player.UID;
7868
                           data.TimeStamp2 = 19165;
7869
                           data.ID = (MsgAction.Mode)162;
7870
                           data.wParam1 = 571;
7871
                           data.wParam2 = 424;
7872
                           p.Send(data);
7873
                       }, null);
7874
7875
                }
7876
                else
7877
                {
7878
                    killer.Owner.Inventory.Add(3008748, 0, 5);
7879
7880
                }
7881
                #endregion
7882
            }
7883
            #endregion
7884
            #endregion
7885
            #region Treasure In The Blue
7886
            if (Name == "CoinsStealer")
7887
            {
7888
                if (Kernel.Rate(6))
7889
                {
7890
                    killer.Owner.Inventory.AddTime(711611, 60);
7891
                    killer.Owner.Send(new MsgTalk("You activated CopperCoin.", System.Drawing.Color.Red, MsgTalk.TopLeft));
7892
                }
7893
                else if (Kernel.Rate(3))
7894
                {
7895
                    killer.Owner.Inventory.AddTime(711610, 60);
7896
                    killer.Owner.Send(new MsgTalk("You activated SilverCoin.", System.Drawing.Color.Red, MsgTalk.TopLeft));
7897
                }
7898
                else if (Kernel.Rate(1))
7899
                {
7900
                    killer.Owner.Inventory.AddTime(711609, 60);
7901
                    killer.Owner.Send(new MsgTalk("You activated GoldCoin.", System.Drawing.Color.Red, MsgTalk.TopLeft));
7902
                }
7903
            }
7904
            if (Name == "SilverOctopus")
7905
            {
7906
                if (Kernel.Rate(50))
7907
                {
7908
                    killer.Owner.Inventory.AddTime(711610, 60);
7909
                    killer.Owner.Send(new MsgTalk("You activated SilverCoin.", System.Drawing.Color.Red, MsgTalk.TopLeft));
7910
                }
7911
            }
7912
            if (Name == "GoldenOctopus")
7913
            {
7914
                killer.Owner.Inventory.AddTime(711609, 60);
7915
                int r = Kernel.Random.Next(1, 5);
7916
                uint ItemID = 0;
7917
                if (r == 1)
7918
                    ItemID = 723700;
7919
                if (r == 2)
7920
                    ItemID = 723727;
7921
                if (r == 3)
7922
                    ItemID = 710212;
7923
                if (r == 4)
7924
                    ItemID = 723341;
7925
                if (r == 5)
7926
                    ItemID = 1088001;
7927
                var infoss = Database.ConquerItemInformation.BaseInformations[ItemID];
7928
                ushort XX = Owner.X, YY = Owner.Y;
7929
                Game.Map MMap = Kernel.Maps[Owner.MapID];
7930
                if (MMap.SelectCoordonates(ref XX, ref YY))
7931
                {
7932
                    Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
7933
                    floorItem.Item = new Network.GamePackets.MsgItemInfo(true);
7934
                    floorItem.Item.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
7935
                    floorItem.Item.ID = ItemID;
7936
                    floorItem.Item.Plus = floorItem.Item.Plus;
7937
                    floorItem.Item.MaximDurability = infoss.Durability;
7938
                    floorItem.Item.Durability = infoss.Durability;
7939
                    floorItem.Item.MobDropped = true;
7940
                    floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
7941
                    floorItem.ItemID = ItemID;
7942
                    floorItem.MapID = Owner.MapID;
7943
7944
                    floorItem.Item.StackSize = 1;
7945
                    floorItem.Item.MaxStackSize = infoss.StackSize;
7946
                    floorItem.MapObjType = Game.MapObjectType.Item;
7947
                    floorItem.X = XX;
7948
7949
                    floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = YY;
7950
7951
                    floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
7952
                    floorItem.OnFloor = Time32.Now;
7953
                    floorItem.ItemColor = floorItem.Item.Color;
7954
                    floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7955
                    while (MMap.Npcs.ContainsKey(floorItem.UID))
7956
                        floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
7957
                    MMap.AddFloorItem(floorItem);
7958
                    SendScreenSpawn(floorItem);
7959
                }
7960
            }
7961
            #endregion
7962
            #region Scramble
7963
            if (killer.MapID == 3935)
7964
            {
7965
                if (killer.Owner.Quests.GetQuest(QuestID.ScrambleforJustice) == null || killer.Owner.Quests.CheckQuest(QuestID.ScrambleforJustice) == MsgTaskStatus.QuestData.QuestStatus.Available)
7966
                    killer.Owner.Quests.Accept(QuestID.ScrambleforJustice);
7967
                if (killer.Owner.Quests.GetQuest(QuestID.ScrambleforJustice).QItem.Status != MsgTaskStatus.QuestData.QuestStatus.Finished)
7968
                {
7969
                    if (Name == "AlluringWitch")
7970
                    {
7971
                        killer.Owner.MessageBox("You`ve defeated the AlluringWitch! Here's your reward!");
7972
                        killer.Owner.Quests.FinishQuest(QuestID.ScrambleforJustice);
7973
                        killer.Owner.Inventory.Add("SavageBone");
7974
                    }
7975
                }
7976
            }
7977
            #endregion
7978
            #region DailyQuest
7979
            if (Name == "Pheasant")
7980
            {
7981
                if (killer.PheasantPoint < 11 && killer.Owner.Quests.CheckQuest(QuestID.First_Stab_2, MsgTaskStatus.QuestData.QuestStatus.Accepted))
7982
                    killer.PheasantPoint++;
7983
                if (killer.PheasantPoint >= 10 && killer.Owner.Quests.CheckQuest(QuestID.First_Stab_2, MsgTaskStatus.QuestData.QuestStatus.Accepted))
7984
                {
7985
7986
                    killer.Owner.Quests.SendPathFinding("You~have~killed~10~Pheasants.~Now~report~back~to~the~TC~Captain.", 1002, 309, 340, 2001);
7987
                }
7988
                if (killer.Owner.Quests.HasQuest(QuestID.First_Stab_2))
7989
                {
7990
                    switch (killer.Owner.Quests.CheckQuest(QuestID.First_Stab_2))
7991
                    {
7992
                        case MsgTaskStatus.QuestData.QuestStatus.Accepted:
7993
                            {
7994
                                var quest = killer.Owner.Quests.GetQuest(QuestID.First_Stab_2);
7995
7996
7997
                                killer.Owner.Quests.IncreaseQuestKills(quest.QItem.UID, killer.PheasantPoint);
7998
7999
                                break;
8000
                            }
8001
                    }
8002
                }
8003
            }
8004
            if (Name == "Turtledove")
8005
            {
8006
                if (killer.Owner.Quests.CheckQuest(QuestID.Letter_Delivery_2, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8007
                {
8008
8009
                    if (killer.Owner.Inventory.Count <= 39)
8010
                    {
8011
                        killer.Owner.Inventory.Add(711236, 0, 1);
8012
                        killer.Owner.Quests.SendPathFinding("Hurry and deliver the Plume Letter to Xu Liang, on the Wind Plain. If you lost the letter, you can claim another one from", 1002, 384, 251, 7991);
8013
                    }
8014
                }
8015
            }
8016
            if (Name == "Robin")
8017
            {
8018
                if (killer.Owner.Quests.CheckQuest(QuestID.Robin_Elimination, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8019
                {
8020
                    killer.PheasantPoint++;
8021
                    if (killer.PheasantPoint < 11)
8022
                    {
8023
8024
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Robin_Elimination, killer.PheasantPoint);
8025
8026
                    }
8027
                    if (killer.PheasantPoint >= 10)
8028
                    {
8029
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From Xu Liang, on the Wind Plain", 1002, 453, 436, 7992);
8030
                    }
8031
                }
8032
                if (killer.Owner.Quests.CheckQuest(QuestID.Feather_Collection, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8033
                {
8034
8035
                    if (killer.Owner.Inventory.Contains(711238, 10))
8036
                    {
8037
8038
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From ArtisanLuo, on the Wind Plain", 1002, 439, 433, 4467);
8039
8040
                    }
8041
                    if (killer.Owner.Inventory.Count <= 39)
8042
                    {
8043
8044
                        killer.Owner.Inventory.Add(711238, 0, 1);
8045
8046
                    }
8047
                    else
8048
                    {
8049
                        killer.Owner.Quests.SendPathFinding("ArtisanLuo is lack of materials to make arrows. Go help him hunt Robins and bring back 10 Robin Feathers", 1002, 442, 431, 4467);
8050
                    }
8051
                }
8052
            }
8053
            if (Name == "Poltergeist" || Name == "Apparition")
8054
            {
8055
                if (killer.Owner.Quests.CheckQuest(QuestID.Love_Confession_3, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8056
                {
8057
8058
                    if (killer.Owner.Inventory.Count <= 39)
8059
                    {
8060
8061
                        killer.Owner.Inventory.Add(711241, 0, 1);
8062
8063
                    }
8064
                    if (killer.Owner.Inventory.Contains(711241, 1))
8065
                    {
8066
8067
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From RuHua, on the Wind Plain", 1002, 417, 511, 7993);
8068
8069
                    }
8070
                }
8071
                if (killer.Owner.Quests.CheckQuest(QuestID.Ghostly_Secrets_III, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8072
                {
8073
8074
                    if (killer.Owner.Inventory.Count <= 39)
8075
                    {
8076
8077
                        killer.Owner.Inventory.Add(720776, 0, 1);
8078
8079
                    }
8080
                    if (killer.Owner.Inventory.Contains(720776, 5))
8081
                    {
8082
8083
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From MasterHao, on the Wind Plain", 1002, 419, 523, 7994);
8084
8085
                    }
8086
                }
8087
                if (killer.Owner.Quests.CheckQuest(QuestID.Ghostly_Secrets_I, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8088
                {
8089
8090
                    if (killer.Owner.Inventory.Count <= 39)
8091
                    {
8092
8093
                        killer.Owner.Inventory.Add(711244, 0, 1);
8094
8095
                    }
8096
                    if (killer.Owner.Inventory.Contains(711244, 1))
8097
                    {
8098
8099
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From MasterHao, on the Wind Plain", 1002, 419, 523, 7994);
8100
8101
                    }
8102
                }
8103
                if (killer.Owner.Quests.CheckQuest(QuestID.Capture_Spirit_I, MsgTaskStatus.QuestData.QuestStatus.Accepted))
8104
                {
8105
8106
                    if (killer.PheasantPoint < 11)
8107
                    {
8108
                        killer.PheasantPoint++;
8109
                        killer.Owner.Quests.IncreaseQuestKills(QuestID.Capture_Spirit_I, killer.PheasantPoint);
8110
                    }
8111
                    if (killer.PheasantPoint >= 10)
8112
                    {
8113
8114
                        killer.Owner.Quests.SendPathFinding("Hurry and take the prize From Fortuneteller, on the Wind Plain", 1002, 412, 512, 600050);
8115
8116
                    }
8117
                }
8118
            }
8119
            #endregion
8120
            #region Gold Drop
8121
            if (Kernel.Rate(Constants.MoneyDropRate))
8122
            {
8123
                if (Kernel.Rate(30))
8124
                {
8125
                    if (killer.MapID == 2102 || killer.MapID == 3935) return;
8126
                    uint amount = (uint)Kernel.Random.Next(Level * 2, Level * 6);
8127
                    if (Level >= 0 && Level <= 5)
8128
                        amount = (uint)Kernel.Random.Next(100, 100);
8129
                    if (amount > 1000000)
8130
                        amount = 6000000;
8131
                    uint ItemID = ItemHandler.MoneyItemID(amount);
8132
                    ushort X = Owner.X, Y = Owner.Y;
8133
                    Game.Map Map = Kernel.Maps[Owner.MapID];
8134
                    if (Map.SelectCoordonates(ref X, ref Y))
8135
                    {
8136
                        Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
8137
                        floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Money;
8138
                        floorItem.Value = amount;
8139
                        floorItem.ItemID = ItemID;
8140
                        floorItem.MapID = Owner.MapID;
8141
                        floorItem.MapObjType = Game.MapObjectType.Item;
8142
                        floorItem.X = X;
8143
                        floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
8144
                        floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
8145
                        floorItem.OnFloor = Time32.Now;
8146
                        floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8147
                        while (Map.Npcs.ContainsKey(floorItem.UID))
8148
                            floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8149
                        Map.AddFloorItem(floorItem);
8150
                        SendScreenSpawn(floorItem);
8151
                    }
8152
                }
8153
                else
8154
                {
8155
                    if (Kernel.Rate(8))
8156
                    {
8157
                        if (killer.MapID == 2102 || killer.MapID == 3935) return;
8158
                        int r = Kernel.Random.Next(1, 5);
8159
                        for (int x = 0; x < r; x++)
8160
                        {
8161
                            uint amount = (uint)Kernel.Random.Next(Level * 2, Level * 6);
8162
                            if (Level >= 0 && Level <= 5)
8163
                                amount = (uint)Kernel.Random.Next(100, 100);
8164
                            if (amount > 1000000)
8165
                                amount = 6000000;
8166
                            uint ItemID = ItemHandler.MoneyItemID(amount);
8167
                            ushort X = Owner.X, Y = Owner.Y;
8168
                            Game.Map Map = Kernel.Maps[Owner.MapID];
8169
                            if (Map.SelectCoordonates(ref X, ref Y))
8170
                            {
8171
                                Network.GamePackets.MsgMapItem floorItem = new Network.GamePackets.MsgMapItem(true);
8172
                                floorItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Money;
8173
                                floorItem.Value = amount;
8174
                                floorItem.ItemID = ItemID;
8175
                                floorItem.MapID = Owner.MapID;
8176
                                floorItem.MapObjType = Game.MapObjectType.Item;
8177
                                floorItem.X = X;
8178
                                floorItem.Owner = killer.Owner; floorItem.OwnerUID = killer.UID; floorItem.Y = Y;
8179
                                floorItem.Type = Network.GamePackets.MsgMapItem.Drop;
8180
                                floorItem.OnFloor = Time32.Now;
8181
                                floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8182
                                while (Map.Npcs.ContainsKey(floorItem.UID))
8183
                                    floorItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8184
                                Map.AddFloorItem(floorItem);
8185
                                SendScreenSpawn(floorItem);
8186
                            }
8187
                        }
8188
                    }
8189
                }
8190
            }
8191
            #endregion
8192
            #region Mobs Drop
8193
            if (Kernel.Rate(20))
8194
            {
8195
                {
8196
                    uint amount = (uint)Kernel.Random.Next(20, 100);
8197
                    killer.ConquerPoints += amount;
8198
                    if (killer.InHangUp)
8199
                        killer.ConquerPoints -= amount * 20 / 100;
8200
                    if (killer.InHangUp)
8201
                        killer.Owner.Send(new MsgTalk(Name + " You get [ " + amount * 20 / 100 + " ].", System.Drawing.Color.Yellow, MsgTalk.TopLeft));
8202
                    else
8203
                        killer.Owner.Send(new MsgTalk(Name + " You get [ " + amount + " ].", System.Drawing.Color.Yellow, MsgTalk.TopLeft));
8204
8205
                }
8206
                if (killer.InHangUp)
8207
                {
8208
                    uint amount = (uint)Kernel.Random.Next(1, 50);
8209
                    killer.ConquerPoints += amount;
8210
                    if (killer.InHangUp)
8211
                        killer.ConquerPoints -= amount * 1 / 50;
8212
                    if (killer.InHangUp)
8213
                        killer.Owner.Send(new MsgTalk(Name + " You get [ " + amount * 1 / 50 + " ] Cps", System.Drawing.Color.Yellow, MsgTalk.TopLeft));
8214
                    else
8215
                        killer.Owner.Send(new MsgTalk(Name + " You get [ " + amount + " ] Cps", System.Drawing.Color.Yellow, MsgTalk.TopLeft));
8216
8217
                }
8218
            }
8219
            #endregion
8220
            #region Mobs Drop Item
8221
            if (killer.PlayerFlag == PlayerFlag.Player)
8222
            {
8223
                if (Kernel.Rate(5))
8224
                {
8225
                    uint ItemID = 0;
8226
                    byte type1 = 1;
8227
                    for (int i = 0; i < 1; i++)
8228
                    {
8229
                        type1 = (byte)Kernel.Random.Next(1, 3);
8230
                        switch (type1)
8231
                        {
8232
                            case 1:
8233
                                ItemID = 3008226;
8234
                                break;
8235
                            case 2:
8236
                                ItemID = 3305426;
8237
                                break;
8238
                        }
8239
                        var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
8240
                        ushort X = Owner.X, Y = Owner.Y;
8241
                        Game.Map Map = Kernel.Maps[Owner.MapID];
8242
                        if (Map.SelectCoordonates(ref X, ref Y))
8243
                        {
8244
                            Network.GamePackets.MsgMapItem Floor = new Network.GamePackets.MsgMapItem(true);
8245
                            Floor.Item = new Network.GamePackets.MsgItemInfo(true);
8246
                            Floor.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
8247
                            Floor.Item.ID = ItemID;
8248
                            Floor.Item.Plus = Floor.Item.Plus;
8249
                            Floor.Item.MaximDurability = infos.Durability;
8250
                            Floor.Item.Durability = infos.Durability;
8251
                            Floor.Item.MobDropped = true;
8252
                            Floor.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item;
8253
                            Floor.ItemID = ItemID;
8254
                            Floor.MapID = Owner.MapID;
8255
                            Floor.MapObjType = Game.MapObjectType.Item;
8256
                            Floor.X = X;
8257
                            Floor.Y = Y;
8258
                            Floor.Type = Network.GamePackets.MsgMapItem.Drop;
8259
                            Floor.OnFloor = Time32.Now;
8260
                            Floor.ItemColor = Floor.Item.Color;
8261
                            Floor.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8262
                            while (Map.Npcs.ContainsKey(Floor.UID))
8263
                                Floor.UID = Network.GamePackets.MsgMapItem.FloorUID.Next;
8264
                            Map.AddFloorItem(Floor);
8265
                            SendScreenSpawn(Floor);
8266
                        }
8267
                    }
8268
                }
8269
                return;
8270
            }
8271
            #endregion
8272
            #region DisCity
8273
8274
            if (Name == "Naga")
8275
            {
8276
                killer.DisKO += 1;
8277
                killer.Owner.Send(new MsgTalk("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Red, MsgTalk.TopLeft));
8278
                return;
8279
            }
8280
            if (Name == "Temptress")
8281
            {
8282
                killer.DisKO += 1;
8283
                killer.Owner.Send(new MsgTalk("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Red, MsgTalk.TopLeft));
8284
                return;
8285
            }
8286
            if (Name == "Centicore")
8287
            {
8288
                killer.DisKO += 1;
8289
                killer.Owner.Send(new MsgTalk("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Red, MsgTalk.TopLeft));
8290
                return;
8291
            }
8292
            if (Name == "HellTroll")
8293
            {
8294
                killer.DisKO += 3;
8295
                killer.Owner.Send(new MsgTalk("Congratulations! You have got 3 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Red, MsgTalk.TopLeft));
8296
                return;
8297
            }
8298
            #endregion
8299
            #region Labirinth
8300
            #region Slinger-GoldGhost
8301
            if (Name == "Slinger" || Name == "GoldGhost")
8302
            {
8303
                uint Uid = 0;
8304
                byte type = (byte)Kernel.Random.Next(1, 45);
8305
                switch (type)
8306
                {
8307
                    case 5:
8308
                    case 4:
8309
                    case 6:
8310
                    case 8:
8311
                        if (!killer.Owner.Inventory.Contains(3007529, 5))
8312
                        {
8313
                            killer.Owner.Inventory.Add(3007529, 0, 1);
8314
                        }
8315
                        break;
8316
                    case 32:
8317
                    case 30:
8318
                        if (killer.Owner.Inventory.Contains(3007528, 5))
8319
                            return;
8320
                        killer.Owner.Inventory.Add(3007528, 0, 1);
8321
                        killer.Update(MsgName.Mode.Effect, "waybee", true);
8322
                        break;
8323
                    case 25:
8324
                    case 24:
8325
                        if (!killer.Owner.Inventory.Contains(721537, 5))
8326
                        {
8327
                            killer.Owner.Inventory.Add(721537, 0, 1);
8328
                        }
8329
                        break;
8330
                    case 2:
8331
                    case 7:
8332
                    case 9:
8333
                        Uid = 721533;
8334
                        killer.Owner.Send(Constants.DroppedItem(Database.ConquerItemInformation.BaseInformations[721533].Name));
8335
                        break;
8336
                    case 19:
8337
                    case 20:
8338
                    case 21:
8339
                    case 22:
8340
                    case 23:
8341
                        killer.CycloneStamp = Time32.Now;
8342
                        killer.CycloneTime = 20;
8343
                        killer.AddFlag((ulong)MsgUpdate.Flags.Cyclone);
8344
                        killer.Owner.Send(new MsgTalk("You received Storm effect!", System.Drawing.Color.CadetBlue, MsgTalk.System));
8345
                        break;
8346
                }
8347
                if (Uid != 0)
8348
                {
8349
                    killer.Owner.Inventory.Add(Uid, 0, 1);
8350
                }
8351
            }
8352
            #endregion
8353
            #region Bladeling-AgileRat
8354
            if (Name == "Bladeling" || Name == "AgileRat")
8355
            {
8356
                uint Uid = 0;
8357
                byte type = (byte)Kernel.Random.Next(1, 45);
8358
                switch (type)
8359
                {
8360
                    case 5:
8361
                    case 6:
8362
                    case 8:
8363
                    case 4:
8364
                        if (!killer.Owner.Inventory.Contains(3007529, 5))
8365
                            killer.Owner.Inventory.Add(3007529, 0, 1);
8366
                        break;
8367
8368
                    case 30:
8369
                    case 32:
8370
                        if (!killer.Owner.Inventory.Contains(3007528, 5))
8371
                        {
8372
                            killer.Owner.Inventory.Add(3007528, 0, 1);
8373
                            killer.Update(MsgName.Mode.Effect, "waybee", true);
8374
                        }
8375
                        break;
8376
                    case 24:
8377
                        if (!killer.Owner.Inventory.Contains(721538, 5))
8378
                            killer.Owner.Inventory.Add(721538, 0, 1);
8379
                        break;
8380
                    case 25:
8381
                        if (!killer.Owner.Inventory.Contains(721538, 5))
8382
                            killer.Owner.Inventory.Add(721538, 0, 1);
8383
                        break;
8384
                    case 2:
8385
                    case 7:
8386
                    case 9:
8387
                        Uid = 721534;
8388
                        break;
8389
                    case 19:
8390
                    case 20:
8391
                    case 21:
8392
                    case 22:
8393
                    case 23:
8394
                        killer.CycloneStamp = Time32.Now;
8395
                        killer.CycloneTime = 20;
8396
                        killer.AddFlag((ulong)MsgUpdate.Flags.Cyclone);
8397
                        killer.Owner.Send(new MsgTalk("You received Storm effect!", System.Drawing.Color.CadetBlue, MsgTalk.System));
8398
                        break;
8399
                }
8400
8401
                if (Uid != 0)
8402
                {
8403
                    killer.Owner.Inventory.Add(Uid, 0, 1);
8404
                }
8405
            }
8406
            #endregion
8407
            #region FiendBat-BlueBird
8408
            if (Name == "FiendBat" || Name == "BlueBird")
8409
            {
8410
                uint Uid = 0;
8411
                byte type = (byte)Kernel.Random.Next(1, 45);
8412
                switch (type)
8413
                {
8414
                    case 5:
8415
                    case 4:
8416
                    case 6:
8417
                    case 8:
8418
                        if (!killer.Owner.Inventory.Contains(3007529, 5))
8419
                            killer.Owner.Inventory.Add(3007529, 0, 1);
8420
                        break;
8421
                    case 30:
8422
                    case 32:
8423
                        if (!killer.Owner.Inventory.Contains(3007528, 5))
8424
                        {
8425
                            killer.Owner.Inventory.Add(3007528, 0, 1);
8426
                            killer.Update(MsgName.Mode.Effect, "waybee", true);
8427
                        }
8428
                        break;
8429
                    case 24:
8430
                    case 25:
8431
                        if (killer.Owner.Inventory.Contains(721539, 5))
8432
                            killer.Owner.Inventory.Add(721539, 0, 1);
8433
                        break;
8434
                    case 2:
8435
                    case 7:
8436
                    case 9:
8437
                        Uid = 721535;
8438
                        break;
8439
                    case 19:
8440
                    case 20:
8441
                    case 21:
8442
                    case 22:
8443
                    case 23:
8444
                        killer.CycloneStamp = Time32.Now;
8445
                        killer.CycloneTime = 20;
8446
                        killer.AddFlag((ulong)MsgUpdate.Flags.Cyclone);
8447
                        killer.Owner.Send(new MsgTalk("You received Storm effect!", System.Drawing.Color.CadetBlue, MsgTalk.System));
8448
                        break;
8449
                }
8450
8451
                if (Uid != 0)
8452
                {
8453
                    killer.Owner.Inventory.Add(Uid, 0, 1);
8454
                }
8455
            }
8456
            #endregion
8457
            #region MinotaurL120
8458
            if (Name == "MinotaurL120")
8459
            {
8460
                uint Uid = 0;
8461
                byte type = (byte)Kernel.Random.Next(1, 45);
8462
                switch (type)
8463
                {
8464
                    case 5:
8465
                    case 4:
8466
                    case 6:
8467
                    case 8:
8468
                        if (!killer.Owner.Inventory.Contains(3007529, 5))
8469
                            killer.Owner.Inventory.Add(3007529, 0, 1);
8470
                        break;
8471
                    case 30:
8472
                    case 32:
8473
                        if (!killer.Owner.Inventory.Contains(3007528, 5))
8474
                        {
8475
                            killer.Owner.Inventory.Add(3007528, 0, 1);
8476
                            killer.Update(MsgName.Mode.Effect, "waybee", true);
8477
                        }
8478
                        break;
8479
                    case 2:
8480
                    case 7:
8481
                    case 9:
8482
                        Uid = 721536;
8483
                        break;
8484
                    case 19:
8485
                    case 20:
8486
                    case 21:
8487
                    case 22:
8488
                    case 23:
8489
                        killer.CycloneStamp = Time32.Now;
8490
                        killer.CycloneTime = 20;
8491
                        killer.AddFlag((ulong)MsgUpdate.Flags.Cyclone);
8492
                        killer.Owner.Send(new MsgTalk("You received Storm effect!", System.Drawing.Color.CadetBlue, MsgTalk.System));
8493
                        break;
8494
                }
8495
8496
                if (Uid != 0)
8497
                {
8498
                    killer.Owner.Inventory.Add(Uid, 0, 1);
8499
                }
8500
            }
8501
            #endregion
8502
            #endregion
8503
            #region Warrior Quest
8504
            if (Name == "SealingStele")
8505
            {
8506
                {
8507
8508
                    INpc npc = new Network.GamePackets.NpcSpawn();
8509
8510
                    killer.Owner.Map.Npcs[npc.UID = 19257].X = 51;
8511
                    killer.Owner.Map.Npcs[npc.UID = 19257].Y = 43;
8512
8513
                    killer.Owner.Screen.FullWipe();
8514
                    killer.Owner.Screen.Reload(null);
8515
                    MsgName str = new MsgName(true);
8516
                    str.Type = 10;
8517
                    str.UID = killer.UID;
8518
                    str.Texts.Add("cantask");
8519
8520
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Mind_of_Evil, 1);
8521
8522
                }
8523
            }
8524
            if (Name == "TinyMindofEvil")
8525
            {
8526
                {
8527
8528
                    INpc npc = new Network.GamePackets.NpcSpawn();
8529
8530
                    killer.Owner.Map.Npcs[npc.UID = 19259].X = 40;
8531
                    killer.Owner.Map.Npcs[npc.UID = 19259].Y = 45;
8532
8533
                    killer.Owner.Screen.FullWipe();
8534
                    killer.Owner.Screen.Reload(null);
8535
                    MsgName str = new MsgName(true);
8536
                    str.Type = 10;
8537
                    str.UID = killer.UID;
8538
                    str.Texts.Add("cantask");
8539
8540
                    killer.Owner.Quests.IncreaseQuestKills(QuestID.Weird_Formation, 1);
8541
8542
                }
8543
            }
8544
            #endregion
8545
            #region Grotto
8546
            #region DarkElf
8547
            if (Name == "DarkElf" && Kernel.Rate(90))
8548
            {
8549
8550
                uint b = 0;
8551
                uint ban = (uint)Kernel.Random.Next(1, 29);
8552
                switch (ban)
8553
                {
8554
                    case 1: b = 721347; break;
8555
                    case 2: b = 0; break;
8556
                    case 3: b = 721347; break;
8557
                    case 4: b = 0; break;
8558
                    case 5: b = 0; break;
8559
                    case 6: b = 721347; break;
8560
                    case 7: b = 0; break;
8561
                    case 8: b = 0; break;
8562
                    case 9: b = 0; break;
8563
                    case 10: b = 0; break;
8564
                    case 11: b = 0; break;
8565
                    case 12: b = 0; break;
8566
                    case 13: b = 0; break;
8567
                    case 14: b = 0; break;
8568
                    case 15: b = 0; break;
8569
                    case 16: b = 0; break;
8570
                    case 17: b = 0; break;
8571
                    case 18: b = 0; break;
8572
                    case 19: b = 0; break;
8573
                    case 20: b = 0; break;
8574
                    case 21: b = 721347; break;
8575
                    case 22: b = 0; break;
8576
                    case 23: b = 0; break;
8577
                    case 24: b = 0; break;
8578
                    case 25: b = 0; break;
8579
                    case 26: b = 0; break;
8580
                    case 27: b = 0; break;
8581
                    case 28: b = 0; break;
8582
                    case 29: b = 0; break;
8583
8584
8585
                }
8586
                ushort X = Owner.X, Y = Owner.Y;
8587
                Map Map = Kernel.Maps[Owner.MapID];
8588
                if (Map.SelectCoordonates(ref X, ref Y))
8589
                {
8590
                    MsgMapItem MsgMapItem = new MsgMapItem(true);
8591
                    MsgMapItem.Item = new MsgItemInfo(true);
8592
                    MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
8593
                    MsgMapItem.Item.ID = b;
8594
                    MsgMapItem.Item.MobDropped = true;
8595
                    MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
8596
                    MsgMapItem.ItemID = b;
8597
                    MsgMapItem.MapID = Owner.MapID;
8598
                    MsgMapItem.MapObjType = MapObjectType.Item;
8599
                    MsgMapItem.X = X;
8600
                    MsgMapItem.Y = Y;
8601
                    MsgMapItem.Owner = killer.Owner;
8602
                    MsgMapItem.Type = MsgMapItem.Drop;
8603
                    MsgMapItem.OnFloor = Time32.Now;
8604
                    MsgMapItem.ItemColor = MsgMapItem.Item.Color;
8605
                    MsgMapItem.UID = MsgMapItem.FloorUID.Next;
8606
                    while (Map.Npcs.ContainsKey(MsgMapItem.UID))
8607
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
8608
                    Map.AddFloorItem(MsgMapItem);
8609
                    SendScreenSpawn(MsgMapItem);
8610
                }
8611
8612
            }
8613
            #endregion
8614
            #region GrottoLady
8615
            if (Name == "GrottoLady" && Kernel.Rate(90))
8616
            {
8617
8618
                uint b = 0;
8619
                uint ban = (uint)Kernel.Random.Next(1, 29);
8620
                switch (ban)
8621
                {
8622
                    case 1: b = 721347; break;
8623
                    case 2: b = 0; break;
8624
                    case 3: b = 721347; break;
8625
                    case 4: b = 0; break;
8626
                    case 5: b = 0; break;
8627
                    case 6: b = 721347; break;
8628
                    case 7: b = 0; break;
8629
                    case 8: b = 0; break;
8630
                    case 9: b = 0; break;
8631
                    case 10: b = 0; break;
8632
                    case 11: b = 0; break;
8633
                    case 12: b = 0; break;
8634
                    case 13: b = 0; break;
8635
                    case 14: b = 0; break;
8636
                    case 15: b = 0; break;
8637
                    case 16: b = 0; break;
8638
                    case 17: b = 0; break;
8639
                    case 18: b = 0; break;
8640
                    case 19: b = 0; break;
8641
                    case 20: b = 0; break;
8642
                    case 21: b = 721347; break;
8643
                    case 22: b = 0; break;
8644
                    case 23: b = 0; break;
8645
                    case 24: b = 0; break;
8646
                    case 25: b = 0; break;
8647
                    case 26: b = 0; break;
8648
                    case 27: b = 0; break;
8649
                    case 28: b = 0; break;
8650
                    case 29: b = 0; break;
8651
8652
8653
                }
8654
                ushort X = Owner.X, Y = Owner.Y;
8655
                Map Map = Kernel.Maps[Owner.MapID];
8656
                if (Map.SelectCoordonates(ref X, ref Y))
8657
                {
8658
                    MsgMapItem MsgMapItem = new MsgMapItem(true);
8659
                    MsgMapItem.Item = new MsgItemInfo(true);
8660
                    MsgMapItem.Item.Color = (Enums.Color)Kernel.Random.Next(4, 8);
8661
                    MsgMapItem.Item.ID = b;
8662
                    MsgMapItem.Item.MobDropped = true;
8663
                    MsgMapItem.ValueType = MsgMapItem.FloorValueType.Item;
8664
                    MsgMapItem.ItemID = b;
8665
                    MsgMapItem.MapID = Owner.MapID;
8666
                    MsgMapItem.MapObjType = MapObjectType.Item;
8667
                    MsgMapItem.X = X;
8668
                    MsgMapItem.Y = Y;
8669
                    MsgMapItem.Owner = killer.Owner;
8670
                    MsgMapItem.Type = MsgMapItem.Drop;
8671
                    MsgMapItem.OnFloor = Time32.Now;
8672
                    MsgMapItem.ItemColor = MsgMapItem.Item.Color;
8673
                    MsgMapItem.UID = MsgMapItem.FloorUID.Next;
8674
                    while (Map.Npcs.ContainsKey(MsgMapItem.UID))
8675
                        MsgMapItem.UID = MsgMapItem.FloorUID.Next;
8676
                    Map.AddFloorItem(MsgMapItem);
8677
                    SendScreenSpawn(MsgMapItem);
8678
                }
8679
            }
8680-
      
8680+
8681
            #endregion
8682
            #endregion
8683
8684
        public void SendScreen(byte[] buffer)
8685
        {
8686
            foreach (Client.GameState client in Server.GamePool)
8687
            {
8688
                if (client != null)
8689
                {
8690
                    if (client.Player != null)
8691
                    {
8692
                        if (client.Player.UID != ExcludeFromSend)
8693
                        {
8694
                            if (Kernel.GetDistance(client.Player.X, client.Player.Y, Owner.X, Owner.Y) > 18)//
8695
                            {
8696
                                continue;
8697
                            }
8698
                            client.Send(buffer);
8699
                        }
8700
                    }
8701
                }
8702
            }
8703
        }
8704
        public static bool ChanceSuccess(double Chance)
8705
        {
8706
            int num = Kernel.Random.Next(10000000);
8707
            double num2 = (double)num / 10000000.0 * 100.0;//100.0
8708
            return Chance >= num2;
8709
        }
8710
        public void SendScreen(Interfaces.IPacket buffer)
8711
        {
8712
            SendScreen(buffer.ToArray());
8713
        }
8714
        public void SendScreenSpawn(Interfaces.IMapObject _object)
8715
        {
8716
            foreach (Client.GameState client in Server.GamePool)
8717
            {
8718
                if (client != null)
8719
                {
8720
                    if (client.Player != null)
8721
                    {
8722
                        if (client.Player.UID != ExcludeFromSend)
8723
                        {
8724
                            if (client.Map.ID == Owner.MapID)
8725
                            {
8726
                                if (Kernel.GetDistance(client.Player.X, client.Player.Y, Owner.X, Owner.Y) > 25)//25
8727
                                {
8728
                                    continue;
8729
                                }
8730
                                _object.SendSpawn(client, false);
8731
                            }
8732
                        }
8733
                    }
8734
                }
8735
            }
8736
        }
8737
        public static void GainSpirits(byte MobLevel, Player attacker)
8738
        {
8739
            try
8740
            {
8741
                uint Spirt = 0;
8742
                if (MobLevel <= 70)
8743
                {
8744
                    Spirt += 1;
8745
                }
8746
                else if (MobLevel >= 70 && MobLevel <= 99)
8747
                {
8748
                    Spirt += 2;
8749
                }
8750
                else if (MobLevel >= 100 && MobLevel <= 119)
8751
                {
8752
                    Spirt += 3;
8753
                }
8754
                else if (MobLevel >= 120 && MobLevel <= 140)
8755
                {
8756
                    Spirt += 4;
8757
                }
8758
                attacker.spiritBeadsCount += Spirt;
8759
                attacker.Owner.Send(new MsgTalk("You received " + Spirt + " spirit!", System.Drawing.Color.Red, 2007));
8760
                if (attacker.spiritBeadsCount >= 2500 && attacker.Owner.Inventory.Contains(729611, 1))
8761
                {
8762
                    attacker.Owner.Send(new MsgTalk("You have collected enough spirit beads, Right click the item for your reward.", System.Drawing.Color.Red, 2007));
8763
                }
8764
                if (attacker.spiritBeadsCount >= 2000 && attacker.Owner.Inventory.Contains(729612, 1))
8765
                {
8766
                    attacker.Owner.Send(new MsgTalk("You have collected enough spirit beads, Right click the item for your reward.", System.Drawing.Color.Red, 2007));
8767
                }
8768
                if (attacker.spiritBeadsCount >= 1500 && attacker.Owner.Inventory.Contains(729613, 1))
8769
                {
8770
                    attacker.Owner.Send(new MsgTalk("You have collected enough spirit beads, Right click the item for your reward.", System.Drawing.Color.Red, 2007));
8771
                }
8772
                if (attacker.spiritBeadsCount >= 1000 && attacker.Owner.Inventory.Contains(729614, 1))
8773
                {
8774
                    attacker.Owner.Send(new MsgTalk("You have collected enough spirit beads, Right click the item for your reward.", System.Drawing.Color.Red, 2007));
8775
                }
8776
                if (attacker.spiritBeadsCount >= 500 && attacker.Owner.Inventory.Contains(729703, 1))
8777
                {
8778
                    attacker.Owner.Send(new MsgTalk("You have collected enough spirit beads, Right click the item for your reward.", System.Drawing.Color.Red, 2007));
8779
                }
8780
            }
8781
            catch (Exception line)
8782
            {
8783
                Console.WriteLine(line);
8784
            }
8785
        }
8786
8787
        public bool IsRespawnAble { get; set; }
8788
    }
8789
}