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

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


abdocoder
2020-04-04, 10:00 PM
صلوا علي النبي
دلوقتي انا داخل في كلان
وحرب الكلان اشتغل
دخلت اضرب ف البولا
مكنتش بتضرب بس صلحتها
تمام ؟! تمام.
طيب ايه المشكلة
المشكلة ان المفروض لما اضرب البولا والدم بتاعها يخلص
المفروض يظهر اسم الكلان بتاعي فوق البولا
ومينفعش اضربها طول ما اسمي موجود عليها
طيب امال ايه المشكلة يا عم ؟؟ هقولك.
المشكلة ان مهما خلصت دمها الاسم الي عليها بيتجدد كأن الي ضرب البولا في نفس الكلان الي كان ضاربينها قبل كدا
بمعني مهما قتلت البولا مبيظهرش اسمك عليها بيظهر الاسم الي كان موجود وانت بتضرب فيها من الاول
أيه الحل

ElSaher
2020-04-04, 10:48 PM
امسح كلاس Clan من عندك وتضيف دا


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using Mr_Panda.Client;
using Mr_Panda.Database;
using Mr_Panda.Interfaces;
using Mr_Panda.Network;
using Mr_Panda.Network.GamePackets;
using Mr_Panda.Game;

namespace Mr_Panda
{
public class Clan : Writer, IPacket
{
private Byte[] mData;
private Int32 Position = 17;
private UInt32 mLeader, mFund, mAllyRequest;
private String mName, mInfo, mAnnouncement;
private Byte mLevel, mBPTower;
public Client.GameState client;
public UInt32 WarScore = 0;
public bool PoleKeeper = false;

private Dictionary<UInt32, ClanMember> mMembers;
private Dictionary<UInt32, Clan> mAllies, mEnemies;

public Clan(UInt32 leaderid, UInt32 clanid, String clanname, String leadername)
{
LeaderId = leaderid;

mMembers = new Dictionary<UInt32, ClanMember>();
mAllies = new Dictionary<UInt32, Clan>();
mEnemies = new Dictionary<UInt32, Clan>();


mData = new byte[141 + (Byte)(clanname.Length + leadername.Length) + 8];
WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
WriteUInt16((UInt16)1312, 2, mData);

ID = clanid;
Name = clanname;
}
public Clan()
{
mData = new byte[141 + 8];
WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
WriteUInt16((UInt16)1312, 2, mData);
}
public UInt32 LeaderId
{
get { return mLeader; }
set { mLeader = value; }
}
public Types Type
{
get { return (Types)BitConverter.ToUInt32(mData, 4); }
set { WriteByte((Byte)value, 4, mData); }
}
public UInt32 ID
{
get { return BitConverter.ToUInt32(mData, 8); }
set { WriteUInt32((UInt32)value, 8, mData); }
}
public Byte Offset16
{
get { return mData[16]; }
set { mData[16] = value; }
}
public Byte Offset17
{
get { return mData[17]; }
set { mData[17] = value; }
}
public String Offset18String
{
get { return Program.Encoding.GetString(mData, 18, mData[17]).Trim(new Char[] { '\0' }); }
set { WriteString(value, 18, mData); }
}
public String Name
{
get { return mName; }
set { mName = value; }
}

private string leaderName;
public bool CalnWar;
public string LeaderName
{
get
{
return leaderName;
}
set
{
leaderName = value;
Writer.WriteString(value, 32, mData);
}
}
public UInt32 Fund
{
get { return mFund; }
set { mFund = value; }
}
public Byte Level
{
get { return mLevel; }
set { mLevel = value; }
}
public Byte BPTower
{
get { return mBPTower; }
set { mBPTower = value; }
}
public String Announcement
{
get { return mAnnouncement; }
set { mAnnouncement = value; }
}
public String Info
{
get { return mInfo; }
set { mInfo = value; }
}
public UInt32 AllyRequest
{
get { return mAllyRequest; }
set { mAllyRequest = value; }
}

public void Build(GameState c, Types type)
{
this.Type = type;
switch (type)
{
case Types.Info:
{
ClanMember member;
if (Members.TryGetValue(c.Player.UID, out member))
{
Info = System.String.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11}"
, ID, mMembers.Count(), 0, Fund, Level - 1, Convert.ToByte(c.Player.ClanRank), 0, BPTower, 0, 0, 0, member.Donation);

Offset16 = 6;

WriteStringWithLength(Info, Position, mData);
Position += Info.Length;
Position++;

WriteStringWithLength(Name, Position, mData);
Position += Name.Length;
Position++;

WriteStringWithLength(LeaderName, Position, mData);
Position += LeaderName.Length;
Position++;

string text2 = "0 0 0 0 0 0 0";
Writer.WriteStringWithLength(text2, Position, mData);
ClanWarArena.ClientWar clientWar;
if (ClanWarArena.GetMyWar(this.ID, out clientWar))
{
string dominationMap = clientWar.DominationMap;
Position += text2.Length;
Position++;
Writer.WriteStringWithLength(dominationMap, Position, mData);
string curentMap = clientWar.CurentMap;
Position += dominationMap.Length;
Position++;
Writer.WriteStringWithLength(curentMap, Position, mData);
}
Position = 17;
}
break;
}
case Types.MyClan:
{
string text = "0 0 0 0 0 0 0";
ClanWarArena.ClientWar clientWar;
if (ClanWarArena.GetMyWar(this.ID, out clientWar))
{
text = string.Concat(new object[]{"1 ",
clientWar.OccupationDays," ",
clientWar.Reward," ",
clientWar.NextReward," 0 0 0"});
}
this.Offset16 = 1;
this.Offset17 = (byte)text.Length;
Writer.WriteString(text, 18, this.mData);
break;
}
}
}
private static void UpdateData(Client.GameState client, string column, object value)
{
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
cmd.Update("clans").Set(column, value).Where("identifier", client.Player.ClanId)
.Execute();
}
public void Save(Client.GameState client, String row, UInt16 value)
{
UpdateData(client, row, value);
}
public void Save(Client.GameState client, String row, Byte value)
{
UpdateData(client, row, value);
}
public void Save(Client.GameState client, String row, String value)
{
UpdateData(client, row, value);
}
public void Save(Client.GameState client, String row, UInt32 value)
{
UpdateData(client, row, value);
}
public UInt32 GetClanId(String name)
{
lock (Kernel.Clans)
{
foreach (Clan clans in Kernel.Clans.Values)
{
if (clans.Name == name)
return clans.ID;
}
}
return 0;
}
public Dictionary<UInt32, ClanMember> Members { get { return this.mMembers; } }
public Dictionary<UInt32, Clan> Allies { get { return this.mAllies; } }
public Dictionary<UInt32, Clan> Enemies { get { return this.mEnemies; } }

public void InfoToMembers()
{
GameState mem;
foreach (ClanMember member in this.Members.Values)
{
if (Kernel.GamePool.TryGetValue(member.Identifier, out mem))
{
mem.Player.GetClan.Build(mem, Types.Info);
mem.Send(mem.Player.GetClan.ToArray());
mem.Send(new ClanMembers(mem.Player.GetClan).ToArray());

}
}
}
public void SendMessage(IPacket packet)
{
GameState mem;
foreach (ClanMember member in this.Members.Values)
{
if (Kernel.GamePool.TryGetValue(member.Identifier, out mem))
mem.Send(packet);
}
}
public static void nobmas(Client.GameState client)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + "Donation To " + client.NobilityInformation.Rank + " in Nobility Rank!", System.Drawing.Color.White, 2011), Program.Values);
}
public static UInt32 NextClanId
{
get
{
UInt32 start = 600;
while (Kernel.Clans.ContainsKey(start))
start++;
return start;
}
}
public static Boolean ValidName(String name)
{
if (name.Length < 1 || name.Length > 35) return false;
foreach (Clan clans in Kernel.Clans.Values)
if (clans.Name == name)
return false;
return true;
}
public void AddRelation(UInt32 Relative, ClanRelations.RelationTypes type)
{
try
{
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("clanrelation"))
cmd.Insert("id", ID).Insert("clanid", ID).Insert("associatedid", Relative).Insert("type", (byte)type).Execute();
}
catch
{
}
}
public void DeleteRelation(UInt32 Relative, ClanRelations.RelationTypes type)
{
try
{
using (var cmd = new MySqlCommand(MySqlCommandType.DELETE))
cmd.Delete("clanrelation", "clanid", ID).And("associatedid", Relative)
.And("type", (byte)type).Execute();
}
catch
{
}
}
public void Join(GameState c)
{
c.Player.ClanId = ID;
c.Player.ClanRank = Ranks.Member;
c.Player.ClanName = Name;
Database.EntityTable.UpdateClanID(c);
Database.EntityTable.UpdateClanRank(c);

Members.Add(c.Player.UID, new ClanMember()
{
Class = c.Player.Class,
Donation = 0,
Identifier = c.Player.UID,
Level = c.Player.Level,
Name = c.Player.Name,
Rank = c.Player.ClanRank
});

Build(c, Types.Info);
c.Send(this);

c.Player.Teleport(c.Player.MapID, c.Player.X, c.Player.Y);

SendMessage(new Message(System.String.Format("{0} Has Joined the Clan!", c.Player.Name), Color.Red, Message.Clan));
}
public static void CreateClan(GameState c, String cname)
{
UInt32 id = NextClanId;
Clan clan = new Clan(c.Player.UID, id, cname, c.Player.Name);
clan.Fund = 250000;
clan.ID = id;
clan.BPTower = 0;
clan.Level = 1;
clan.Name = cname;
clan.LeaderName = c.Player.Name;

clan.Members.Add(c.Player.UID, new ClanMember()
{
Class = c.Player.Class,
Donation = 250000,
Identifier = c.Player.UID,
Level = c.Player.Level,
Name = c.Player.Name,
Rank = Ranks.ClanLeader
});

Kernel.Clans.Add(id, clan);

Kernel.SendWorldMessage(new Message(System.String.Format("{0} has succesfully set up a new Clan {1}", c.Player.Name, cname), Color.Red,
Message.TopLeft));

using (var cmd = new MySqlCommand(MySqlCommandType.INSERT))
cmd.Insert("clans").Insert("identifier", id)
.Insert("leaderid", clan.LeaderId).Insert("name", clan.Name)
.Insert("fund", clan.Fund).Insert("announcement", "")
.Insert("BPTower", clan.BPTower).Insert("Level", clan.Level)
.Insert("LeaderName", c.Player.Name).Insert("polekeeper", 0).Execute();

c.Player.ClanId = id;
c.Player.ClanRank = Ranks.ClanLeader;
Database.EntityTable.UpdateClanID(c);
Database.EntityTable.UpdateClanRank(c);
c.Player.ClanName = cname;
clan.Build(c, Types.Info);
c.Send(clan);
c.SendScreen(c.Player.SpawnPacket, true);
}
public static void LoadClans()
{
Dictionary<uint, Dictionary<uint, ClanMember>> dict = new Dictionary<uint, Dictionary<uint, ClanMember>>();

using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("entities").Where("clanid", 0, true))
using (var reader = cmd.CreateReader())
{
while (reader.Read())
{
uint clanId = reader.ReadUInt32("clanid");
ClanMember mem = new ClanMember()
{
UID = reader.ReadUInt32("Uid"),
Identifier = reader.ReadUInt32("Uid"),
Class = reader.ReadByte("Class"),
Donation = reader.ReadUInt32("ClanDonation"),
Level = reader.ReadByte("Level"),
Name = reader.ReadString("Name"),
Rank = (Ranks)reader.ReadByte("ClanRank"),
};
if (!dict.ContainsKey(clanId)) dict.Add(clanId, new Dictionary<uint, ClanMember>());
dict[clanId].Add(mem.UID, mem);
}
}
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("clans"))
using (var reader = cmd.CreateReader())
{
while (reader.Read())
{
UInt32 HeroId = reader.ReadUInt32("LeaderId");
Clan c = new Clan(HeroId, reader.ReadUInt32("Identifier"), reader.ReadString("Name"), reader.ReadString("LeaderName"));
{
c.Announcement = reader.ReadString("Announcement");
c.BPTower = reader.ReadByte("BPTower");
c.ID = reader.ReadUInt32("Identifier");
c.Fund = reader.ReadUInt32("Fund");
c.LeaderId = reader.ReadUInt32("LeaderId");
c.Level = reader.ReadByte("Level");
c.LeaderName = reader.ReadString("LeaderName");
c.PoleKeeper = reader.ReadBoolean("PoleKeeper");
}
Kernel.Clans.Add(c.ID, c);
if (dict.ContainsKey(c.ID))
c.mMembers = dict[c.ID];
else
c.mMembers = new Dictionary<uint, ClanMember>();
}
}
foreach (Clan c in Kernel.Clans.Values)
{
c.LoadAssociates();
}
}
public static void DisbandClan(GameState c)
{
byte[] Packet = new byte[90];
Writer.WriteUInt16(82, 0, Packet);
Writer.WriteUInt16(1312, 2, Packet);
Writer.WriteUInt32(23, 4, Packet);
Writer.WriteUInt32(c.Player.UID, 8, Packet);
if (c.Team != null)
c.Team.GetClanShareBp(c);
Database.EntityTable.RemoveClan(c);
using (var cmd = new MySqlCommand(MySqlCommandType.DELETE))
cmd.Delete("clans", "leaderid", c.Player.UID).Execute();

foreach (var h in c.Player.GetClan.Members.Values)
{
var hero = Program.Values.SingleOrDefault(x => x.Player.UID == h.Identifier);
if (hero != null)
{
hero.Player.ClanRank = Clan.Ranks.None;
hero.Player.ClanName = "";
hero.Player.ClanId = 0;
hero.Send(Packet);
hero.SendScreenSpawn(hero.Player, true);
}
}
Kernel.Clans.Remove(c.Player.ClanId);
}
public static void SaveClan(Clan clan)
{
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE);
cmd.Update("Clans").Set("Fund", clan.Fund).Set("Level", clan.Level)
.Set("Bulletin", clan.Announcement).Set("Leader", clan.leaderName).Where("ClanID", clan.ID).Execute();
}
public static void TransferClan(string name)
{
MySqlCommand cmd3 = new MySqlCommand(MySqlCommandType.UPDATE);
cmd3.Update("entities")
.Set("ClanRank", 100).Where("Name", name).Execute();
}
private void LoadAssociates()
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("clanrelation").Where("clanid", this.ID))
using (var reader = cmd.CreateReader())
{
while (reader.Read())
{
UInt32 AssociateId = reader.ReadUInt32("AssociatedId");
ClanRelations.RelationTypes Type = (ClanRelations.RelationTypes)(reader.ReadUInt32("Type"));
Clan c;
if (Kernel.Clans.TryGetValue(AssociateId, out c))
{
if (Type == ClanRelations.RelationTypes.Allies)
this.Allies.Add(AssociateId, c);
else
this.Enemies.Add(AssociateId, c);
}
}
}
}
public enum Types : byte
{
Info = 1,
Members = 4,
Recruit = 9,
AcceptRecruit = 10,
Join = 11,
AcceptJoinRequest = 12,
AddEnemy = 14,
DeleteEnemy = 15,
AddAlly = 17,
AcceptAlliance = 18,
DeleteAlly = 20,
TransferLeader = 21,
Kick = 22,
Quit = 23,
Announce = 24,
SetAnnouncement = 25,
Dedicate = 26,
MyClan = 29
}
public enum Ranks : ushort
{
ClanLeader = 100,
Spouse = 11,
Member = 10,
None = 0
}
public void Send(GameState client) { client.Send(mData); }
public byte[] ToArray() { return mData; }
public void Deserialize(byte[] buffer) { mData = buffer; }

public void SendClanShareBp(uint leaderUID, uint BpShare, Client.GameState client)
{
Network.GamePackets.Update update = new Network.GamePackets.Update(true) { UID = client.Player.UID };
update.Append(Network.GamePackets.Update.ClanShare Bp, leaderUID);
//update.Append4(Network.GamePackets.Update.ClanShar eBp, BpShare);
client.Send(update.ToArray());

}
}
}

abdocoder
2020-04-04, 10:54 PM
انا عندي كلاس كلان 1 و كلاس كلان 2 احطو في انهي كلاس

midoazoz
2020-04-04, 10:58 PM
يا عم متمسح حرب الكلان كلها وضيفها من اول وجديد من سورس شغال فيه ومفيش اكتر منهم بعدين انت بتقول في كلاس 1 و 2 يعني معكوك فيها انت امسحهم وضيفها من الاول كلها الموضوع سهل اووي

ahmedfathy
2020-04-04, 11:00 PM
كلمني فيس بوك الحل سهل جدآ وانا همسحلك الكلان خالص وضفهولك من الاول علي نضيف عشان 100 في ال 100 في مشاكل تاني عندك في الحرب نفسها