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

مشاهدة النسخة كاملة : سستم الرونز سورس اليكس بورتو


محمودمحمدسالم
2019-08-09, 07:02 PM
صاحب الشغل عبدالرحمن
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Project_Terror_v2.Game.MsgServer
{
public unsafe struct MsgRuns
{
public enum RuneType : byte
{
Equip = 57,
UnEquip = 58,
InventoryRune = 61,
UpgradeRune = 63
}
static ushort[] YellowRunePoints = new ushort[10] { 1, 500, 1000, 3000, 8000, 15000, 20000, 25000, 32000, 0 };
private static ushort[] BlueRunePoints = new ushort[26] { 1, 400, 800, 1200, 1800, 2700, 3700, 4500, 5300, 6000, 7500, 8300, 9000, 10500, 12000, 13500, 15000, 22500, 22500, 22500, 22500, 22500, 30000, 30000, 30000, 0, };
public static bool IsRune(uint ID)
{
return ID >= 4010101 && ID <= 4031309 || ID >= 4010001 && ID <= 4010901;
}
public static bool IsRuneEssence(uint ID)
{
return (ID == 4040001) || (ID == 4050001) || (ID == 4060001);
}
public static void Runs(Client.GameClient client, ServerSockets.Packet _stream)
{
var packet = new byte[_stream.Size];
System.Runtime.InteropServices.Marshal.Copy(new IntPtr(_stream.Memory), packet, 0, _stream.Size);
switch ((RuneType)packet[20])
{
case RuneType.UpgradeRune:
{
MsgGameItem Item;
if (client.Warehouse.TryGetItem((uint)Game.MsgNpc.Npc ID.WHRune, (uint)BitConverter.ToUInt32(packet, 8), out Item) || client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcI D.MainRune, (uint)BitConverter.ToUInt32(packet, 8), out Item))
{
if (IsRune(Item.ITEM_ID))
{
Queue<MsgGameItem> ItemsPlus = new Queue<MsgGameItem>();
for (int i = 0; i < packet[26]; i++)
{
var uid = BitConverter.ToUInt32(packet, 91 + 4 * i);
MsgGameItem itemuse;
if (client.Warehouse.TryGetItem((uint)Game.MsgNpc.Npc ID.WHRune, uid, out itemuse))
ItemsPlus.Enqueue(itemuse);
else if (client.Inventory.TryGetItem(uid, out itemuse))
ItemsPlus.Enqueue(itemuse);
}
while (ItemsPlus.Count > 0)
{
var Stone = ItemsPlus.Dequeue();
if (IsRune(Stone.ITEM_ID))
{
Item.PlusProgress += GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100));
Item.PlusProgress += Stone.PlusProgress;

}
else if (!IsRuneEssence(Stone.ITEM_ID))
{
Item.PlusProgress += Database.ItemType.StonePlusPoints(Stone.Plus);
Item.PlusProgress += Stone.PlusProgress;
}
else
{
Item.PlusProgress += (uint)Math.Max(1, (int)Stone.StackSize) * 10;
}
while (Item.PlusProgress >= GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)) && IsRuneMax(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)))
{
Item.PlusProgress -= GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100));
Item.ITEM_ID++;
if (!IsRuneMax(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)))
Item.PlusProgress = 0;
}
if (Stone.WH_ID != 0)
{
client.Warehouse.DeleteItem((uint)Game.MsgNpc.NpcI D.WHRune, Stone.UID);
client.Send(_stream.ItemUsageCreate(MsgItemUsuageP acket.ItemUsuageID.RemoveInventory, Stone.UID, 0, 0, 0, 0, 0));
}
else
client.Inventory.Update(Stone, Role.Instance.AddMode.REMOVE, _stream);

Item.Mode = Role.Flags.ItemMode.Update;
Item.Send(client, _stream);
}
}
}
break;
}
case RuneType.InventoryRune:
{
switch (packet[12])
{
case 0:
{
MsgGameItem items;
if (client.Inventory.TryGetItem((uint)BitConverter.To UInt32(packet, 8), out items))
{

if (IsRune(items.ITEM_ID) == false)
return;
if (client.Warehouse.AddItem(items, (uint)Game.MsgNpc.NpcID.WHRune))
{
if (client.Inventory.ClientItems.TryRemove(items.UID, out items))
{
items.Position = (byte)Role.Flags.ConquerItem.Rune;
if (Database.ItemType.IsRuneEssence(items.ITEM_ID))
{
client.Send(_stream.ItemUsageCreate(MsgItemUsuageP acket.ItemUsuageID.RemoveInventory, items.UID, 0, 0, 0, 0, 0));
if (client.Warehouse.TryGetItem((uint)Game.MsgNpc.Npc ID.WHRune, items.UID, out items))
{
items.Mode = Role.Flags.ItemMode.AddItem;
items.Send(client, _stream);
}
}
client.Send(_stream.ItemUsageCreate((MsgItemUsuage Packet.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));
}
}
}
break;
}

case 1:
{
if (client.Warehouse.RemoveItem(BitConverter.ToUInt32 (packet, 8), (uint)Game.MsgNpc.NpcID.WHRune, null))
client.Send(_stream.ItemUsageCreate((MsgItemUsuage Packet.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));
break;
}
}
break;
}
case RuneType.Equip:
{
MsgGameItem DataItem;
if (client.Warehouse.TryGetItem((uint)Game.MsgNpc.Npc ID.WHRune, (uint)BitConverter.ToUInt32(packet, 8), out DataItem))
{

if (IsRune(DataItem.ITEM_ID) == false)
return;
var DBItem = Database.ItemType.GetItemRecord(DataItem.ITEM_ID);
if (DBItem != null)
{
if (client.Warehouse.CanEquipRune((ushort)packet[12]))
{
if (client.Warehouse.DeleteItem((uint)Game.MsgNpc.Npc ID.WHRune, (uint)BitConverter.ToUInt32(packet, 8)))
{
client.Warehouse.AddItem(DataItem, (uint)Game.MsgNpc.NpcID.MainRune);
DataItem.Mode = Role.Flags.ItemMode.Update;
DataItem.Position = (byte)packet[12];
DataItem.Send(client, _stream);
client.Equipment.QueryEquipment(client.Equipment.A lternante, false);
client.Send(_stream.ItemUsageCreate((MsgItemUsuage Packet.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));

var spell = Database.MagicType.GetSpellRecord(DBItem.SpellID, DBItem.SpellLevel);

if (spell != null)
{
if (!client.MySpells.ClientSpells.ContainsKey((ushort )spell.ID))
client.MySpells.Add(_stream, (ushort)spell.ID);
}
}
}
}
}
break;
}
case RuneType.UnEquip:
{
MsgGameItem DataItem;
if (client.Warehouse.TryGetItem((uint)Game.MsgNpc.Npc ID.MainRune, (uint)BitConverter.ToUInt32(packet, 8), out DataItem))
{

if (IsRune(DataItem.ITEM_ID) == false)
return;

if (client.Warehouse.AddItem(DataItem, (uint)Game.MsgNpc.NpcID.WHRune))
{
if (client.Warehouse.DeleteItem((uint)Game.MsgNpc.Npc ID.MainRune, (uint)BitConverter.ToUInt32(packet, 8)))
{
DataItem.Mode = Role.Flags.ItemMode.Update;
DataItem.Position = (byte)Role.Flags.ConquerItem.Rune;
DataItem.Send(client, _stream);

client.Equipment.QueryEquipment(client.Equipment.A lternante, false);
client.Send(_stream.ItemUsageCreate((MsgItemUsuage Packet.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));

var DBItem = Database.ItemType.GetItemRecord(DataItem.ITEM_ID);
if (DBItem != null)
{
var spell = Database.MagicType.GetSpellRecord(DBItem.SpellID, DBItem.SpellLevel);

if (spell != null)
{
if (client.MySpells.ClientSpells.ContainsKey((ushort) spell.ID))
client.MySpells.Remove((ushort)spell.ID, _stream);
}
}
}
}
else
client.SendSysMesage("Sorry, your container is full.");
}
break;
}
}
}
public static uint GetRuneComposePoints(uint ID, byte plus)
{
if ((ID >= 4030101 && ID <= 4031309))
return YellowRunePoints[Math.Min((int)plus, 9)];
return BlueRunePoints[Math.Min((int)plus, 27)];
}

public static bool IsRuneMax(uint ID, byte plus)
{
if ((ID >= 4030101 && ID <= 4031309))
{
if (plus < 9)
return true;
}
else
if (plus < 27)
return true;
return false;
}
}
}
بتوفيق للجميع

Hassan Emprator
2019-08-09, 07:04 PM
هههه مسطفي سمير الي ناشره

محمودمحمدسالم
2019-08-09, 07:05 PM
هههه مسطفي سمير الي ناشره

صاحب الشغل عبدالرحمن
ميفرقش معايا مين الي ناشر طلما مش بتاعو انا بكتب صاحب الحاجه مش الي ناشر الموضوع

محمودمحمدسالم
2019-08-09, 07:07 PM
هههه مسطفي سمير الي ناشره

الي ناشر ده زاي زايك المفرود يكتب مين صاحب الشغل ميخدش الشغل لي و الي تعب في ملهاش اي لزمه
عندك كلمه حلوة اكتبها معندكش مش لازم تعرفني مين الي ناشر الكلام ده لاني عارف وللهي

AhmedGoda
2019-08-11, 11:39 AM
اضيف فين الحجات دي

مصطفي عدلي
2019-08-12, 08:41 AM
يا حبيبي ما هو الشغل وصل لمصطفى سمير انت اخذته ونزلته يبقى اقرا الكلام اللي هم في قلب البوست صح وانت هتفهم بشده اخذ كوبي وبست وتنزل وخلاص

افهم الحوار على ايه احسن ما انت ما انتاش فاهم حاجه و بتنزل وخلاص كده

مصطفي عدلي
2019-08-12, 08:43 AM
وكمان وانت بتفهم صح اللي نازل ده ما هوش كامل

Users
2019-08-12, 10:22 AM
يعنى عاوز تقولى ان ده سيستم الرونز كامل

محمودمحمدسالم
2019-08-12, 06:07 PM
يعنى عاوز تقولى ان ده سيستم الرونز كامل

انتا شايفني كاتب ان ده السستم كامل ؟

محمودمحمدسالم
2019-08-12, 06:09 PM
يا حبيبي ما هو الشغل وصل لمصطفى سمير انت اخذته ونزلته يبقى اقرا الكلام اللي هم في قلب البوست صح وانت هتفهم بشده اخذ كوبي وبست وتنزل وخلاص

افهم الحوار على ايه احسن ما انت ما انتاش فاهم حاجه و بتنزل وخلاص كده

خليك في حالك ونبي و ملكش في عندك كلمه حلوة اكتبها معندكش يبقا متكلمش اصلا

و لو انتا مصطفي احب اقولك يعني اي الشغل وصل لي مصطفي و بتاع الشغل طلما مش بتاعك يبقا خلاص برا عنك

ابو حمزه9
2019-08-12, 06:26 PM
خليك في حالك ونبي و ملكش في عندك كلمه حلوة اكتبها معندكش يبقا متكلمش اصلا
و لو انتا مصطفي احب اقولك يعني اي الشغل وصل لي مصطفي و بتاع الشغل طلما مش بتاعك يبقا خلاص برا عنك
مش عاوز مشاكل فى المنتدي بالذات فى القسم دة بعد أذنكم :emoji11:

انت عمري
2019-09-24, 02:56 AM
يتحط فين دة لو سمحت