المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : حرب PoleIslanD


Hassan Emprator
2020-02-20, 04:12 PM
سلام عليكم حبايبي قولتلكو هنيجي بكل حاجه جديده طبعا

يله نبدا ونقول بسم الله

اعمل كلاس ومسيه

PoleIslanD


وضيف فيه

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EmpratorServer.Network.GamePackets;
using EmpratorServer.Game.ConquerStructures.Society;

namespace EmpratorServer.Game
{
public class PoleIslanD
{
public static SobNpcSpawn Pole, RightGate, LeftGate;

public static SobNpcSpawn Poles;
public const ushort MapID = 2075;
public static SafeDictionary<uint, Guild> Scores = new SafeDictionary<uint, Guild>(100);

public static bool IsWar = false, Flame10th = false, FirstRound = false;

public static Time32 ScoreSendStamp, LastWin;

public static Guild PoleKeeper, CurrentTopLeader;

private static bool changed = false;

private static string[] scoreMessages;

public static DateTime StartTime;

public static bool Claim
{
get { return Program.Vars["pwclaim"]; }
set { Program.Vars["pwclaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["pwkeeperid"]; }
set { Program.Vars["pwkeeperid"] = value; }
}

public static void PoleIslanDIni()
{
var Map = Kernel.Maps[2075];
Pole = (SobNpcSpawn)Map.Npcs[815];
LeftGate = (SobNpcSpawn)Map.Npcs[516020];
RightGate = (SobNpcSpawn)Map.Npcs[516021];
}

public static void Start()
{
object[] name;
if (LeftGate == null) return;
Scores = new SafeDictionary<uint, Guild>(100);
StartTime = DateTime.Now;
LeftGate.Mesh = (ushort)(240 + LeftGate.Mesh % 10);
RightGate.Mesh = (ushort)(270 + LeftGate.Mesh % 10);
name = new object[] { "Quest PoleIslanD Has Started Go To Guild Controller At TwinCity (352,337)" };
Kernel.SendWorldMessage(new Message(string.Concat(name), "ALLUSERS", "PoleIslanD", System.Drawing.Color.Red, 2500), Program.Values);
Kernel.SendWorldMessage(new Message("PoleIslanD has began!", System.Drawing.Color.Red, Message.Center), Program.Values);
FirstRound = true;
foreach (Guild guild in Kernel.Guilds.Values)
{
guild.PIScore = 0;
}
Update upd = new Update(true);
upd.UID = LeftGate.UID;
upd.Append(Update.Mesh, LeftGate.Mesh);
upd.Append(Update.Hitpoints, LeftGate.Hitpoints);
Kernel.SendWorldMessage(upd, Program.Values, (ushort)2075);
upd.Clear();
upd.UID = RightGate.UID;
upd.Append(Update.Mesh, RightGate.Mesh);
upd.Append(Update.Hitpoints, RightGate.Hitpoints);
Kernel.SendWorldMessage(upd, Program.Values, (ushort)2075);
Claim = false;
IsWar = true;
}

public static void Reset()
{
Scores = new SafeDictionary<uint, Guild>(100);

LeftGate.Mesh = (ushort)(240 + LeftGate.Mesh % 10);
RightGate.Mesh = (ushort)(270 + LeftGate.Mesh % 10);

LeftGate.Hitpoints = LeftGate.MaxHitpoints;
RightGate.Hitpoints = RightGate.MaxHitpoints;
Pole.Hitpoints = Pole.MaxHitpoints;

Update upd = new Update(true);
upd.UID = LeftGate.UID;
upd.Append(Update.Mesh, LeftGate.Mesh);
upd.Append(Update.Hitpoints, LeftGate.Hitpoints);
Kernel.SendWorldMessage(upd, Program.Values, (ushort)2075);
upd.Clear();
upd.UID = RightGate.UID;
upd.Append(Update.Mesh, RightGate.Mesh);
upd.Append(Update.Hitpoints, RightGate.Hitpoints);
Kernel.SendWorldMessage(upd, Program.Values, (ushort)2075);

foreach (Guild guild in Kernel.Guilds.Values)
{
guild.PIScore = 0;
}

IsWar = true;
}

public static void FinishRound()
{
if (PoleKeeper != null && !FirstRound)
{
if (PoleKeeper.Wins == 0)
PoleKeeper.Losts++;
else
PoleKeeper.Wins--;
Database.GuildTable.UpdateGuildWarStats(PoleKeeper );
}
LastWin = Time32.Now;

FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.ID;
Kernel.SendWorldMessage(new Message("The guild, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this PoleIslanD round!", System.Drawing.Color.Red, Message.Center), Program.Values);
Kernel.SendWorldMessage(new Message("It is generald pardon time. You have 5 minutes to leave, run for your life!", System.Drawing.Color.White, Message.TopLeft), Program.Values, (ushort)6001);
if (PoleKeeper.Losts == 0)
PoleKeeper.Wins++;
else
PoleKeeper.Losts--;
Database.GuildTable.UpdateGuildWarStats(PoleKeeper );
Pole.Name = PoleKeeper.Name;
}
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)2075);
Reset();
}

public static void End()
{
if (PoleKeeper != null)
{
Kernel.SendWorldMessage(new Message("The guild, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this PoleIslanD!---PoleIslanD has ended!", System.Drawing.Color.White, Message.Center), Program.Values);
//EmpratorServer.Database.EntityTable.Status2();
}
else
{
Kernel.SendWorldMessage(new Message("PoleIslanD has ended and there was no winner!", System.Drawing.Color.Red, Message.Center), Program.Values);
//EmpratorServer.Database.EntityTable.Status2();
}
IsWar = false;
Claim = true;
UpdatePole(Pole);
foreach (Client.GameState client in Program.Values)
{
//client.Entity.Status2 = 0;
//client.Entity.RemoveFlag(Network.GamePackets.Updat e.Flags.TopDeputyLeader);
//client.Entity.RemoveFlag(Network.GamePackets.Updat e.Flags.TopGuildLeader);
}
}

public static void AddScore(uint addScore, Guild guild)
{
if (guild != null)
{
guild.PIScore += addScore;
changed = true;
if (!Scores.ContainsKey(guild.ID))
Scores.Add(guild.ID, guild);
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)2075);
//Kernel.SendWorldMessage(msg, Program.GamePool, (ushort)6001);
}
}

private static void SortScores(out Guild winner)
{
winner = null;
List<string> ret = new List<string>();

int Place = 0;
foreach (Guild guild in Scores.Values.OrderByDescending((p) => p.PTScore))
{
if (Place == 0)
winner = guild;
string str = "No " + (Place + 1).ToString() + ": " + guild.Name + "(" + guild.PTScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}

changed = false;
scoreMessages = ret.ToArray();
}

private static void UpdatePole(SobNpcSpawn pole)
{
new Database.MySqlCommand(EmpratorServer.Database.MySq lCommandType.UPDATE)
.Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
}
}
}

والانبي سي

#region PoleIslanD
case 115202:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Hey there " + client.Entity.Name + " Would you like to Join PoleIslanD?.");
dialog.Text("or claim the Prize?, you can join Every day At 16:00 to 17:00.");
dialog.Text("and the winner Guild Leader will get 999.999.999 cps after it finish u have 5 minutes to claim?.");
dialog.Option("Join PoleIslanD", 1);
dialog.Option("Claim Prize.", 5);
dialog.Send();
break;
}
case 1:
{
if (PoleIslanD.IsWar)
{
Random R = new Random();
int Nr = R.Next(1, 7);
if (Nr == 1) client.Entity.Teleport(2075, 790, 571);
if (Nr == 2) client.Entity.Teleport(2075, 790, 534);
if (Nr == 3) client.Entity.Teleport(2075, 790, 590);
if (Nr == 4) client.Entity.Teleport(2075, 789, 620);
if (Nr == 5) client.Entity.Teleport(2075, 759, 530);
if (Nr == 6) client.Entity.Teleport(2075, 737, 624);
if (Nr == 7) client.Entity.Teleport(2075, 713, 622);


}
else
{
dialog.Text("The war is not held now! It will start every day at 16:00");
dialog.Option("okay", 255);
dialog.Send();
break;
}
break;
}
case 5:
{
if (!PoleIslanD.IsWar)
{
if (client.Guild != null)
{
if (PoleIslanD.KeeperID != 0)
{
if (PoleIslanD.Claim && client.AsMember.Rank == Game.Enums.GuildMemberRank.GuildLeader && client.Guild.ID == PoleIslanD.KeeperID)
{
PoleIslanD.Claim = false;
PoleIslanD.KeeperID = 0;
EmpratorServer.Kernel.SendWorldMessage(new Message("Congratulations! " + client.Entity.Name + " claimed the prize 999.999.999 CPs for winning the PoleIslanD.", System.Drawing.Color.Black, Message.Center), Program.Values);
client.Entity.ConquerPoints += ServerRates.Poles;
Program.AddWarLog("Pole", "5.00.000.000 CPS", client.Entity.Name);
}
else
{
dialog.Text("sorry u dont have any prize to claim....");
dialog.Option("okay", 255);
dialog.Send();
break;
}
}
}
else
{
dialog.Text("sorry u dont have any prize to claim");
dialog.Option("okay", 255);
dialog.Send();
break;
}
}
else
{
dialog.Text("Hey there " + client.Entity.Name + " You can't get the prize while the war is on!");
dialog.Option("okay", 255);
dialog.Send();
break;
}
break;
}
}
break;
}
#endregion
#region PoleIslanD
case 815:
{
dialog.Text("Welcome in PoleIslanD HaveFun!.");
dialog.Option("Thanks.", 255);
dialog.Send();
break;
}
#endregion


سيرش عا

public static void ReceiveAttack(Game.Entity attacker, SobNpcSpawn attacked, Attack attack, uint damage,

وبعديها هتلاقي جوها

if (attacked.UID == 123456)


تحته ضيف

if (attacker.MapID == 2075)
{
if (attacked.UID == 815)
{
if (Game.PoleIslanD.PoleKeeper == attacker.Owner.Guild)
return;
if (attacked.Hitpoints <= damage)
attacked.Hitpoints = 0;
Game.PoleIslanD.AddScore(damage, attacker.Owner.Guild);
}
}

سيرش هنا

public static bool CanAttack(Game.Entity attacker, SobNpcSpawn attacked,


فوق

if (Game.PoleIslanD.PoleKeeper != null)


ضيف

if (attacker.MapID == 2075)
{
if (attacker.GuildID == 0 || !Game.PoleIslanD.IsWar)
{
if (attacked.UID == 815)
{
return false;
}
}

شفره تشغيل

case "island":
{
switch (Data[1])
{
case "on": PoleIslanD.Start();
foreach (var cclient in Program.Values)
cclient.MessageBox("PoleIslanD has begun! Would you like to join?",
p => { p.Entity.Teleport(1002, 313, 267); }, null); break;
case "off": PoleIslanD.End(); break;
}
break;
}

بعدين سيرش عا

Database.MapsTable.Load();


تحته ضيف

Game.PoleIslanD.PoleIslanDIni();
Console.WriteLine("PoleIslanD initializated.");


الاوتو انفنت

#region PoleIslanD

if (!Game.PoleIslanD.IsWar)
{
if (Now64.Hour == 16 && Now64.Minute == 00 && Now64.Second == 04)
{
Game.PoleIslanD.Start();

foreach (var client in Program.Values)
if (client.Entity.MapID == 6000 || client.Entity.MapID == 6001 || client.Entity.MapID == 6002 || client.Entity.MapID == 6003 || client.Entity.MapID == 6004)
return;
foreach (var client in Program.Values)
if (client.Entity.GuildID != 0)
client.MessageBox("PoleIslanD has begun! Would you like to join? ",
p => { p.Entity.Teleport(1002, 278, 192); }, null);
}
}
if (Game.PoleIslanD.IsWar)
{
if (Time32.Now > Game.PoleIslanD.ScoreSendStamp.AddSeconds(3))
{
Game.PoleIslanD.ScoreSendStamp = Time32.Now;
Game.PoleIslanD.SendScores();
}
if (Now64.Hour == 16 && Now64.Minute == 50 && Now64.Second <= 2)
{
Kernel.SendWorldMessage(new Network.GamePackets.Message("10 Minutes left till PoleIslanD End Hurry kick other Guild's Ass!.", System.Drawing.Color.White, Network.GamePackets.Message.Center), Program.Values);
}
}

if (Game.PoleIslanD.IsWar)
{
if (Now64.Hour == 17 && Now64.Minute == 00 && Now64.Second == 04)
{
Game.PoleIslanD.End();
{

}
}
}
#endregion


وفي program برضو ضيف

new Game.Map(2075, Database.DMaps.MapPaths[2075]);


سيرش هنا

public void Die(Game.Entity killer)


ضيف

if (MapID == 2075)//island
{
if (UID != 815)
{
if (Hitpoints != 0 || Mesh != 252 && Mesh != 282)
{
if (Mesh == 241)
Mesh = (ushort)(250 + Mesh % 10);
else
Mesh = (ushort)(280 + Mesh % 10);

Update upd = new Update(true);
upd.UID = UID;
upd.Append(Update.Mesh, Mesh);
killer.Owner.SendScreen(upd, true);
Hitpoints = 0;
}

سيرش عا

public static readonly System.Collections.Generic.List<ushort> PKFreeMaps


ضيف

2075,


المابه بقا

2075 2075 7 0


بالتوفيق احبايبي

محمد ياسر
2020-02-20, 04:44 PM
مانا منزله ايه الجديد هههههههههه
وكامله كمان
عفواً لايمكن عرض الروابط في الإرشيف

Hassan Emprator
2020-02-20, 06:04 PM
مانا منزله ايه الجديد هههههههههه
وكامله كمان


لا دي غير دي وفي واحده كمان اسمها polephonix

ModyMohamedAdel
2020-02-21, 04:40 PM
عاش

blackconquer222
2021-08-09, 06:34 PM
عاش

Eslamahmed
2024-03-24, 12:28 PM
بب

Castala7
2024-04-01, 03:18 AM
تسلم

ahmednero2
2024-04-08, 08:30 PM
ty

yousef here
2024-08-27, 11:54 PM
تلات