احصائياتى

الردود
17

المشاهدات
2243
 
youssefabdelmanam
.:: عضو نشيط ::.

    غير متواجد

المشاركات
144

+التقييم
0.05

تاريخ التسجيل
May 2019

الاقامة

نظام التشغيل

رقم العضوية
238
2019-07-12, 09:26 AM
المشاركة 1
2019-07-12, 09:26 AM
المشاركة 1
Post Quest TreasureBox
السلام عليكم ورحمة الله وبركاته
طبعا احب اعرفكم بنفسي ابل منبتدي الشرح
معاكم اخوكم يوسف عبدو
طبعا انا جديد هنا في المنتدي ودي تعتبر ال موضوعاتي

للاسف انا معرفتش احط لوجو المنتدي في الموضوع عشان مش معاية

انا عارف اني رغاي فيلا نخش في الشرح علي طول

دلوقتي انا جيبلكم كوستة بسيطة وهيا كوستة البحث عن الصندايق

طبعا دي كوستة بسيطة بس حبيت انزلها للناس عشان الي محتاجها

فكرة الكوستة انك مثلا بيجيلك رسالة في وقت محدد بيوديك عند ان بي سي الكوستة

بعد كدة بتدخل مابة كبيرة انت بقي تفضل تدور علي الصناديق ياما تكسب ايتم يا سبس يا جولد ياما تموت انت وحظك

بعد 10 دقايق من الكوستة بتخرج تلقأي يلا نخش في الاضافات

اول حاجة اعمل كلاس في اي مكان بأسم TreasureBox

بعد ضيف دا جواه


كود:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using Mr_Panda.Client;
using Mr_Panda.Interfaces;
using Mr_Panda.Network.GamePackets;


namespace 
Mr_Panda.Game
{
    public class 
TreasureBox
    
{
        static 
Map Map = Kernel.Maps[3820];
        const 
int MAX_BOXES = 20, ITEMS = 1000, CPSMoney = 1001, LEVEL = 1002, DEATH = 1003, STUN = 1004, KICK = 1005;
        static 
int CurrentBoxes = 0;
        static 
Mr_Panda.Interfaces.INpc npc;
        static 
ushort tempX, tempY = 0;
        static 
uint BaseId = 101002;
        static List<
Point> VaildOnes = new List<Point>();
        public static 
bool OnGoing;

        public static 
void Generate()
        {
            try
            {
                if (
CurrentBoxes < MAX_BOXES)
                {
                    if (
Map == null)
                    {
                        
Map = Kernel.Maps[3820];
                        return;
                    }
                    
tempX = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Width);
                    
tempY = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Height);
                    if (
Map.Floor[tempX, tempY, MapObjectType.Item, null])
                    {
                        
npc = new Network.GamePackets.NpcSpawn();
                        
npc.UID = BaseId++;
                        
npc.Mesh = (ushort)Kernel.RandFromGivingNums(9307, 9277, 9267, 9287, 9287, 9287 ,9257, 9257, 9257, 9257, 9257, 9257, 9307, 9307, 9307, 9307, 9307, 9277, 9267, 9267, 9267, 9277, 9277, 9277, 9277, 9277);
                        
npc.Type = Enums.NpcType.Talker;
                        
npc.MapID = Map.ID;
                        
npc.X = tempX;
                        
npc.Y = tempY;

                        
Map.AddNpc(npc);
                        
CurrentBoxes++;
                        
Kernel.SendWorldMessage(new Message("A new treasure box appeared!", Color.Red, 2012));
                    }
                }
            }
            catch (
Exception e)
            {
                
Console.WriteLine(e.ToString());
            }

        }

        public static 
void Reward(GameState client)
        {
            
client.Player.CurrentTreasureBoxes++;
            var 
orders = Kernel.GamePool.Values.OrderByDescending(x => x.Player.CurrentTreasureBoxes).ToArray();
            for (
int i = 0; i < orders.Length + 1; i++)
            {
                if (
i == 11) break;
                
Message msg;

                if (
i == 0)
                {
                    
msg = new Message("", System.Drawing.Color.Red, Message.FirstRightCorner);
                }
                else
                {
                    if (
orders[i - 1].Player.CurrentTreasureBoxes == 0) continue;
                    
msg = new Message("No " + i.ToString() + "- " + orders[i - 1].Player.Name + " Opened " + orders[i - 1].Player.CurrentTreasureBoxes.ToString() + " Boxes!", System.Drawing.Color.Red, Message.ContinueRightCorner);
                }

                
Kernel.SendWorldMessage(msg, Program.GamePool, (ushort)3820);
            }

            
int prize = 0;

            if (
client.Player.Level <= 135)
                
prize = Kernel.RandFromGivingNums(ITEMS, CPSMoney, KICK, ITEMS, CPSMoney, ITEMS, CPSMoney, DEATH);
            else 
prize = Kernel.RandFromGivingNums(ITEMS, CPSMoney, KICK, ITEMS, CPSMoney, ITEMS, CPSMoney, DEATH);
            
//#warning TREASURE BOX PRIZE
            
switch (prize)
            {
                case 
CPSMoney:
                    {
                        
uint amount = (uint)Kernel.Random.Next(10000000,100000000);
                        if (
amount >= 1)
                        {
                            
client.Player.ConquerPoints += amount;
                            
Kernel.SendWorldMessage(new Message(client.Player.Name + " got " + amount.ToString() + " CPs while opening the TreasureBox!", Color.White, Message.Talk));
                        }
                        break;
                    }
                case 
ITEMS:
                    {
                        
Database.ConquerItemBaseInformation temp;
                        
uint itemid = (uint)Kernel.RandFromGivingNums(188755, 192935, 192775, 187405, 188105, 188705, 188945, 188515, 192825, 200220, 187855, 200475, 187405, 187415, 187425, 3004124, 183325, 183495, 184305, 184315, 184375, 187305, 187315, 181395, 184405, 184365);
                        
client.Inventory.Add(itemid, 0, 1);
                        
Database.ConquerItemInformation.BaseInformations.TryGetValue(itemid, out temp);
                        
Kernel.SendWorldMessage(new Message(client.Player.Name + " got " + temp.Name + " while opening the TreasureBox!", Color.White, Message.Talk));
                        break;
                    }
                case 
KICK:
                    {
                        
client.Player.Teleport(1002, 338, 345);
                        
Kernel.SendWorldMessage(new Message(client.Player.Name + " got KICKED-OUT! while opening the TreasureBox!", Color.White, Message.Talk));
                        break;
                    }
                case 
DEATH:
                    {
                        
client.Player.Die(client.Player);
                        
Kernel.SendWorldMessage(new Message(client.Player.Name + " got Death! while opening the TreasureBox!", Color.White, Message.Talk));
                        break;
                    }
            }

            
CurrentBoxes--;
            
client.Player.ConquerPoints += 100000;
            
//client.Entity.TreasuerPoints += 1;
        
}
    }
} 

بعد كدة تخش علي كلاس World.cs

وتبحث عن


كود:
private void WorldTournaments 

وتضيف دا تحتها


كود:
#region TreasureBox
            
if ((Now64.Minute == 32) && (Now64.Second == 01))
            {
                
TreasureBox.OnGoing = true;
                for (
int i = 0; i < 10; i++)
                    
Game.TreasureBox.Generate();
                
Kernel.SendWorldMessage(new Message("The Lost TreasureBox event began!", Color.Red, Message.Center));

                foreach (var 
client in Program.Values)
                    
client.MessageBox("Lost treasure box event has started! Would you like to join? [Prize: 5kk or 1 kk  CPs or more]",
                        (
p) => { p.Player.Teleport(1002, 300, 229); }, null);
            }
            if (
TreasureBox.OnGoing)
            {
                
Game.TreasureBox.Generate();
            }
            if ((
Now64.Minute == 37) && TreasureBox.OnGoing)
            {
                
TreasureBox.OnGoing = false;
                foreach (var 
client in Program.Values)
                    if (
client.Player.MapID == 3820)
                        
client.Player.Teleport(1002, 302, 286);
                
Kernel.SendWorldMessage(new Message("The Lost TreasureBox event ended!", Color.Red, Message.Center));
            }
            
#endregion 

ملحوظة: لو حبيت تعدل علي وقت الكوستة

هنا الوقت الي بيبدأ فيه الكوستة


كود:
if ((Now64.Minute == 32) && (Now64.Second == 01)) 

وهنا الوقت الي بينتهي فيه الكوستة وتخرج التون


كود:
if ((Now64.Minute == 37) && TreasureBox.OnGoing) 

بعد كدة هتدخل علي كلاس Npc.cs

وتبحث عن


كود:
switch (client.ActiveNpc) 

وتضيف دا تحتية


كود:
#region TreasureThief
                    
case 16970:
                        {
                            switch (
npcRequest.OptionID)
                            {
                                case 
0:
                                    {
                                        
dialog.Text("I have lost all my treasure boxes inside the DisCity map when I was doing the quest! now you'll need to find them for me!");
                                        
dialog.Option("Send me there.", 1);
                                        
dialog.Option("Meh!", 255);
                                        
dialog.Send();
                                        break;
                                    }
                                case 
1:
                                    {
                                        if (
TreasureBox.OnGoing)
                                        {
                                            
client.Player.Teleport(3820, (ushort)Kernel.Random.Next(87, 212), (ushort)Kernel.Random.Next(114, 200));
                                        }
                                        else
                                        {
                                            
dialog.Text("I can only send you there when it's xx:32 To xx:37 ");
                                            
dialog.Option("Oh I See!.", 255);
                                            
dialog.Send();
                                        }
                                        break;
                                    }
                            }
                            break;
                        }
                    
#endregion 

بعد كدة تبحث في نفس الكلاس عن


كود:
if (client.ActiveNpc >= 101002 

وتبدلها كلها بي دي


كود:
if (client.ActiveNpc >= 101002 && client.Player.MapID == 3820)
                            {
                                
client.SendScreen(new Network.GamePackets.Data(true) { UID = client.ActiveNpc, ID = Network.GamePackets.Data.RemoveEntity }, true);
                                
client.Map.RemoveNpc(client.Map.Npcs[client.ActiveNpc]);
                                
Mr_Panda.Game.TreasureBox.Reward(client);
                            } 

بعد كدة هتخش علي كلاس Entity.Cs

وتبحث عن


كود:
public class Entity : Writer, 

وتضيف دا تحتية


كود:
public int CurrentTreasureBoxes = 0; 

كدا خلصنا اضافات السي شارب نخش علي اضافات النافي كات

اضافة الان بي سي في الانافي كات


كود:
Npc

16970    TreasureBox    2    20337    1002    296    224 

بص كدة معاية في اضافة المابة اول حاجة هتروح تضيف المابة دي لو لقيتها اصلا عندك امسها وضيف الي في الموضوع

عشان كلو يبقي شغال معاك تمام


كود:
10002    3820    65544    0 



كدا تم الاتنهاء بفضل الله دعوه حلوه بقا ملحوظه الي هيطلع ايرور في Mr_Panda يبدلها في اسم البروجكت

والي هيجيلو ايرور في كلمة Player يبدلها بكلمة Entity

وانتظروني في موضوعات اخري

والسلام عليكم ورحمة الله وبركاتة





التعديل الأخير تم بواسطة Hazem ; 2019-07-12 الساعة 09:29 AM
قديم 2019-07-12, 09:30 AM
المشاركة 2
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
جميل بس لسه المسابقه مابدائت هههههههه

قديم 2019-07-12, 09:43 AM
المشاركة 3
youssefabdelmanam
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
جميل بس لسه المسابقه مابدائت هههههههه
هتبدأ امتي يا حازم

قديم 2019-07-12, 09:44 AM
المشاركة 4
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
لما عدد الاعضاء يبا 400

قديم 2019-07-12, 10:21 AM
المشاركة 5
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
الله ينور جهز موضوعاتك عشان قربنا
وياريت تشارك المنتدى مع الناس للافاده

قديم 2019-07-12, 11:45 AM
المشاركة 6
ALz3em
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
جميل أستمر تسلم أيدك

قديم 2019-07-12, 01:10 PM
المشاركة 7
Rider
.:: نائب المدير ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
عاش موضوع كامل و الاضافه كامله احسنت

قديم 2019-07-12, 05:03 PM
المشاركة 8
MohamedModyAdel
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
عاش

قديم 2019-07-12, 05:35 PM
المشاركة 9
osama
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
طيب لما بفتح الصنديق كلها بتدينى سبس عالى انا عاوز السبس يكون صعب علشان السرفر انا عملو صعب يريت يكون من 100 سبس الى 2000 سبس الى يجيى فى الصنديق كلها اعمل اية علشان يحصل كدة ؟

قديم 2019-07-12, 05:37 PM
المشاركة 10
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: Quest TreasureBox
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
طيب لما بفتح الصنديق كلها بتدينى سبس عالى انا عاوز السبس يكون صعب علشان السرفر انا عملو صعب يريت يكون من 100 سبس الى 2000 سبس الى يجيى فى الصنديق كلها اعمل اية علشان يحصل كدة ؟
عدل علي القيمه ده

كود:
uint amount = (uint)Kernel.Random.Next(10000000,100000000); 



العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: Quest TreasureBox
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مساعده في تركيب كوسته treasurebox في سورس رايزو AliNasser مشكلات السيرفيرات كونكر الشخصيه 7 2020-02-05 02:25 PM
طلب خاص مطلوب توب TreasureBox ahmedfathy مشكلات السيرفيرات كونكر الشخصيه 1 2019-11-06 11:54 AM
مشكله بخصوص TreasureBox سمير مشكلات السيرفيرات كونكر الشخصيه 1 2019-10-22 07:16 PM
مشكلة في TreasureBox Avengers-Co مشكلات السيرفيرات كونكر الشخصيه 2 2019-09-03 06:49 PM
Vip Quest Hazem تطوير سيرفرات كونكر 1 2019-04-21 05:07 PM


الساعة الآن 03:41 PM