|
المشاركات 264 |
+التقييم 0.14 |
تاريخ التسجيل Nov 2019 |
الاقامة في ارض الله |
نظام التشغيل ادد معرفة |
رقم العضوية 2636 |
// * Created by ZeZoOo
// * Copyright © 2020
// * All rights reserved Mr.ZeZoOo - Project
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mr_ZeZo.Network.GamePackets;
using Mr_ZeZo.Database;
namespace Mr_ZeZo.Game
{
public class ClanWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Clan> Scores = new SafeDictionary<uint, Clan>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Clan PoleKeeper, CurrentTopLeader;
private static bool changed = false;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["cwclaim"]; }
set { Program.Vars["cwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["cwkeeperid"]; }
set { Program.Vars["cwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1509);
var Map = Kernel.Maps[1509];
Pole = (SobNpcSpawn)Map.Npcs[812];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Clan>(100);
StartTime = DateTime.Now;
FirstRound = true;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Clan>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1509);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won " + rates.Clanwarday + " cps!---Clan war has ended!", System.Drawing.Color.White, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void AddScore(uint addScore, Clan clan)
{
if (clan != null)
{
clan.WarScore += addScore;
changed = true;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
if (changed)
SortScores(out CurrentTopLeader);
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Clan winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Clan clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
changed = false;
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
public class UnionWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass> Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Mr_ZeZo.Network.GamePackets.Union.UnionClass PoleKeeper, CurrentTopLeader;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["uwclaim"]; }
set { Program.Vars["uwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["uwkeeperid"]; }
set { Program.Vars["uwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1510);
var Map = Kernel.Maps[1510];
Pole = (SobNpcSpawn)Map.Npcs[817];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
StartTime = DateTime.Now;
Kernel.SendWorldMessage(new Message("Union war has began!", System.Drawing.Color.Red, Message.Center), Program.Values);
FirstRound = true;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this Union war round", System.Drawing.Color.Red, Message.Center), Program.Values);
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
SendScreen(Pole.ToArray());
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1510);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Mr_ZeZo.Kernel.SendWorldMessage(new Message(" The Union " + PoleKeeper.Name + " claimed the prize [250.000] ConquerPoints for winning the UnionWar ", System.Drawing.Color.Black, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union war has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void SendScreen(byte[] buffer)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Player != null)
{
{
if (Kernel.GetDistance(client.Player.X, client.Player.Y, Pole.X, Pole.Y) > 18 && client.Player.MapID == 1510)
{
continue;
}
client.Send(buffer);
}
}
}
}
}
public static void AddScore(uint addScore, Mr_ZeZo.Network.GamePackets.Union.UnionClass clan)
{
if (clan != null)
{
clan.WarScore += addScore;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
SendScores();
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Mr_ZeZo.Network.GamePackets.Union.UnionClass winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
}
#region clanwar
// * Created by ZeZoOo
// * Copyright © 2020
// * All rights reserved Mr.ZeZoOo - Project
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mr_ZeZo.Network.GamePackets;
using Mr_ZeZo.Database;
namespace Mr_ZeZo.Game
{
public class ClanWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Clan> Scores = new SafeDictionary<uint, Clan>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Clan PoleKeeper, CurrentTopLeader;
private static bool changed = false;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["cwclaim"]; }
set { Program.Vars["cwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["cwkeeperid"]; }
set { Program.Vars["cwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1509);
var Map = Kernel.Maps[1509];
Pole = (SobNpcSpawn)Map.Npcs[812];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Clan>(100);
StartTime = DateTime.Now;
FirstRound = true;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Clan>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1509);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won " + rates.Clanwarday + " cps!---Clan war has ended!", System.Drawing.Color.White, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void AddScore(uint addScore, Clan clan)
{
if (clan != null)
{
clan.WarScore += addScore;
changed = true;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
if (changed)
SortScores(out CurrentTopLeader);
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Clan winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Clan clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
changed = false;
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
public class UnionWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass> Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Mr_ZeZo.Network.GamePackets.Union.UnionClass PoleKeeper, CurrentTopLeader;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["uwclaim"]; }
set { Program.Vars["uwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["uwkeeperid"]; }
set { Program.Vars["uwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1510);
var Map = Kernel.Maps[1510];
Pole = (SobNpcSpawn)Map.Npcs[817];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
StartTime = DateTime.Now;
Kernel.SendWorldMessage(new Message("Union war has began!", System.Drawing.Color.Red, Message.Center), Program.Values);
FirstRound = true;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this Union war round", System.Drawing.Color.Red, Message.Center), Program.Values);
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
SendScreen(Pole.ToArray());
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1510);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Mr_ZeZo.Kernel.SendWorldMessage(new Message(" The Union " + PoleKeeper.Name + " claimed the prize [250.000] ConquerPoints for winning the UnionWar ", System.Drawing.Color.Black, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union war has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void SendScreen(byte[] buffer)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Player != null)
{
{
if (Kernel.GetDistance(client.Player.X, client.Player.Y, Pole.X, Pole.Y) > 18 && client.Player.MapID == 1510)
{
continue;
}
client.Send(buffer);
}
}
}
}
}
public static void AddScore(uint addScore, Mr_ZeZo.Network.GamePackets.Union.UnionClass clan)
{
if (clan != null)
{
clan.WarScore += addScore;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
SendScores();
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Mr_ZeZo.Network.GamePackets.Union.UnionClass winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
}
#region clanwar
// * Created by ZeZoOo
// * Copyright © 2020
// * All rights reserved Mr.ZeZoOo - Project
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mr_ZeZo.Network.GamePackets;
using Mr_ZeZo.Database;
namespace Mr_ZeZo.Game
{
public class ClanWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Clan> Scores = new SafeDictionary<uint, Clan>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Clan PoleKeeper, CurrentTopLeader;
private static bool changed = false;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["cwclaim"]; }
set { Program.Vars["cwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["cwkeeperid"]; }
set { Program.Vars["cwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1509);
var Map = Kernel.Maps[1509];
Pole = (SobNpcSpawn)Map.Npcs[812];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Clan>(100);
StartTime = DateTime.Now;
FirstRound = true;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Clan>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Clan clan in Kernel.Clans.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1509);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won " + rates.Clanwarday + " cps!---Clan war has ended!", System.Drawing.Color.White, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void AddScore(uint addScore, Clan clan)
{
if (clan != null)
{
clan.WarScore += addScore;
changed = true;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
if (changed)
SortScores(out CurrentTopLeader);
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Clan winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Clan clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
changed = false;
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
public class UnionWar
{
public static SobNpcSpawn Pole;
public static SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass> Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
public static bool IsWar = false, FirstRound = false;
public static Time32 ScoreSendStamp, LastWin;
public static Mr_ZeZo.Network.GamePackets.Union.UnionClass PoleKeeper, CurrentTopLeader;
private static string[] scoreMessages;
public static DateTime StartTime;
public static bool Claim
{
get { return Program.Vars["uwclaim"]; }
set { Program.Vars["uwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["uwkeeperid"]; }
set { Program.Vars["uwkeeperid"] = value; }
}
public static void Initiate()
{
Database.DMaps.LoadMap(1510);
var Map = Kernel.Maps[1510];
Pole = (SobNpcSpawn)Map.Npcs[817];
}
public static void Start()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
StartTime = DateTime.Now;
Kernel.SendWorldMessage(new Message("Union war has began!", System.Drawing.Color.Red, Message.Center), Program.Values);
FirstRound = true;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
Claim = false;
IsWar = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Mr_ZeZo.Network.GamePackets.Union.UnionClass>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Kernel.Unions.Values)
{
clan.WarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
LastWin = Time32.Now;
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Kernel.SendWorldMessage(new Message("The Union, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this Union war round", System.Drawing.Color.Red, Message.Center), Program.Values);
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
SendScreen(Pole.ToArray());
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1510);
Reset();
}
public static void End()
{
if (PoleKeeper != null)
{
Mr_ZeZo.Kernel.SendWorldMessage(new Message(" The Union " + PoleKeeper.Name + " claimed the prize [250.000] ConquerPoints for winning the UnionWar ", System.Drawing.Color.Black, Message.Center), Program.Values);
PoleKeeper.PoleKeeper = true;
}
else
{
Kernel.SendWorldMessage(new Message(" Union war has ended and there was no winner ", System.Drawing.Color.Red, Message.Center), Program.Values);
}
Claim = true;
IsWar = false;
UpdatePole(Pole);
}
public static void SendScreen(byte[] buffer)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Player != null)
{
{
if (Kernel.GetDistance(client.Player.X, client.Player.Y, Pole.X, Pole.Y) > 18 && client.Player.MapID == 1510)
{
continue;
}
client.Send(buffer);
}
}
}
}
}
public static void AddScore(uint addScore, Mr_ZeZo.Network.GamePackets.Union.UnionClass clan)
{
if (clan != null)
{
clan.WarScore += addScore;
if (!Scores.ContainsKey(clan.ID))
Scores.Add(clan.ID, clan);
SendScores();
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0)
return;
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1510);
}
}
private static void SortScores(out Mr_ZeZo.Network.GamePackets.Union.UnionClass winner)
{
winner = null;
List<string> ret = new List<string>();
int Place = 0;
foreach (Mr_ZeZo.Network.GamePackets.Union.UnionClass clan in Scores.Values.OrderByDescending((p) => p.WarScore))
{
if (Place == 0)
winner = clan;
string str = "No " + (Place + 1).ToString() + ": " + clan.Name + "(" + clan.WarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}
scoreMessages = ret.ToArray();
}
private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(Mr_ZeZo.Database.MySqlCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
}
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
غير شكل الجارادت لشكل مونك | محمد ياسر | تطوير سيرفرات كونكر | 5 | 2021-07-24 08:16 PM |
المشكلة في البوله بقا مبتضربش في سورس MR_ZeZOo | Mawdo3jded | مشكلات السيرفيرات كونكر الشخصيه | 3 | 2019-12-11 02:02 PM |