عرض مشاركة واحدة
احصائياتى

الردود
13

المشاهدات
5251
 
AbuMaryam

AbuMaryam is on a distinguished road

    غير متواجد

المشاركات
160

+التقييم
0.08

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

الاقامة

نظام التشغيل

رقم العضوية
1120
2019-09-09, 11:48 PM
المشاركة 1 
#1  
افتراضي سيستم GameUpdate لجميع السورسات (TerrorProject - ImpulsE - Emulator)
السلام عليكم ورحمة الله وبركاتة

في بعض الناس معندهاش السيستم دة ف السورس الى بتستخدمة

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

محتوي البوكس دة عبارة عن كذا سطر

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

و قوانين اللعب ف السيرفر

و رسالة ل دعوي الاصدقاء للعب ف السيرفر

و التصليحات و التجديدات بتاعت السيرفر

و طبعآ محتوي السطور (الرسالة) انت الى بتتحكم فيهم و بتكتب الى انت عايزة

ودي صورة للناس الى متعرفش السيستم دة او مش واصلة للي بتكلم علية




نيجي بقي نخش ف الموضوع


اول حاجة الناس الى بتستخدم سورس اليكس او لوردس (Project_Terror)


اول حاجة هتفتح البروجكت

وتخش على المسار دة

Game > NpcPacketParser

و تعمل كلاس (ملف) جديد ف الفولدر دة بـ اسم StaticGUI.cs


و تمسح كل الي جواة و تضيف الكلاس دة


كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
NameProject.Game.MsgNpc
{
    public 
unsafe static partial class MsgBuilder
    
{
        public 
enum StaticGUIType byte
        
{
            
Header 0,
            
Body 1,
            
Footer 2
        


        public static 
unsafe ServerSockets.Packet StaticGUI(this ServerSockets.Packet streamStaticGUIType Modestring Text)
        {
            
stream.InitWriter();

            
stream.Write(Extensions.Time32.Now.Value);
            
stream.Write(0);
            
stream.Write((ushort)0);
            
stream.Write((byte)Mode);
            
stream.Write((byte)112);
            
stream.Write(Text);

            
stream.Finalize(GamePackets.NpcServerRequest);
            return 
stream;
        }
    }



و متنساش تبدل NameProject ب اسم البروجكت الى انت عاملة


2 - هتبحث عن الكلاس دة MsgLoginHandler.cs

و تبحث بداخل الكلاس عن


public unsafe static void LoadMap


و بعد اول شرط if و بعد try


تحط الكود دة


كود:
#region GameUpdates Message
                    //AbuMaryam - منتدي اكواد
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Header"Our latest updates:"));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"Welcome to " Program.ServerConfig.ServerName "."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- Epic Warrior got added"));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- Guild System got some changes (such as now you can have up to 8 DL - Enemy / Ally bugs got fixed)"));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- CPS Admin exchange of silvers into gold bug got fixed."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- AntiCheat protection got some updates in order to stop ilegal changes ."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- P7 Weapons for Epic Warrior got added at quest."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- BackFire (EpicWarrior Skill) is now giving the right about of damage in the opponents."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"- Now Archers can equip 2 x 1-Hand Weapons."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Body"And many others bugs got fixed that can be seen in the game."));
                    
client.Send(packet.StaticGUI(MsgNpc.MsgBuilder.StaticGUIType.Footer"Thank you. " Program.ServerConfig.ServerName "`s staff. "));
                    
#endregion 


ودة الي تقدر تعدل علي و تغير محتوي الرسالة و السطور زي ما انت عايز

و بكدة تقدر تعمل Rebuild للبروجكت و تفتح و تجرب و تبلغني النتائج

ولو في اي مشكلة معاك تقدر تكتبها هنا و ان شاء الله هتابع معاكم





نيجي بقي للناس الى شغالة ب بروجكت امبلوس او فونكس (ImpulsE)


هتروح على المسار دة

Network > GamePackets

و تعمل كلاس جديد بـ اسم

GameUpdates.cs

و تمسح الى جواة و تضيف دة


كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
NameProject.Network.GamePackets
{
    public 
unsafe class GameUpdates WriterInterfaces.IPacket
    
{
        
byte[] Packet;
        public 
enum Mode byte
        
{
            
Header,
            
Body,
            
Footer
        
}
        public 
GameUpdates(Mode _Actionstring _String)
        {
            
Packet = new byte[29 _String.Length];
            
WriteUInt16((ushort)(Packet.Length 8), 0Packet);
            
WriteUInt16((ushort)MsgTypes.MsgTaskDialog2Packet);
            
WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4Packet);
            
Packet[15] = 112;
            
Packet[16] = 1;
            
Action _Action;
            
String _String;
        }
        public 
Mode Action
        
{
            
get { return (Mode)Packet[14]; }
            
set Packet[14] = (Byte)value; }
        }
        public 
string String
        
{
            
get { return System.BitConverter.ToString(Packet18Packet[17]); }
            
set WriteStringWithLength(value17Packet); }
        }
        public 
byte[] ToArray()
        {
            return 
Packet;
        }
        public 
void Deserialize(byte[] packet)
        {
            
Packet packet;
        }
        public 
void Send(Client.GameState client)
        {
            
client.Send(Packet);
        }
    }


و متنساش تعدل NameProject لـ اسم البروجكت بتاعك الى بتستخدمة


2 - داخل كلاس Entity.cs

هتبحث عن

public uint RacePoints

و تحط تحتها الريجون دة


كود:
#region GameUpdates - AbuMaryam
        
private uint _updatelist;
        public 
uint UpdateList
        
{
            
get { return _updatelist; }
            
set
            
{
                
_updatelist value;
                
UpdateDatabase("updatelist"value);
            }
        }
        
#endregion 


3 - داخل ملف PacketHandler.cs


تبحث عن

if (client.Entity.FullyLoaded)


و تضيف الريجون دة داخل الشرط


كود:
#region Game Updates
                    
if (client.Entity.UpdateList == 0)
                    {
                        
client.Send(new GameUpdates(GameUpdates.Mode.Header"Welcome To, ServerName Online" DateTime.Now.ToString()));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"1.New skills have been added\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"2.Support ServerName Online By Invite ur Friends\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"3.Don't trust anyone claiming that he is the GM/PM\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"4.If you found any bug you can repot it By ServerName"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"5.Enjoy Playing ServerName Online with us and invite friends!"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Footer"A lot of surprises awaited during these days"));
                        
client.Entity.UpdateList += 1;
                    }
                    
#endregion 


و متنساش تعدل ServerName لـ اسم سيرفرك لو حابب تسيب الرسالة زي ما هيا


و بكدة تقدر تعمل Rebuild للبروجكت و تجرب و تبلغني النتائج




نيجي بقي للناس الى شغالة ب بروجكت احمد عاشور او السورسات المسج او البيج شو او توليرنس (Emulator)



1 - هتروح على المسار دة

Network > GamePackets

و تعمل كلاس جديد بـ اسم

MsgGameUpdates.cs

و تمسح الى جواة و تضيف دة


كود:



using System
;

namespace 
NameProject.Network.GamePackets
{
    public 
unsafe class GameUpdates WriterInterfaces.IPacket
    
{
        
byte[] Packet;
        public 
enum Mode byte
        
{
            
Header,
            
Body,
            
Footer
        
}
        public 
GameUpdates(Mode _Actionstring _String)
        {
            
Packet = new byte[29 _String.Length];
            
WriteUInt16((ushort)(Packet.Length 8), 0Packet);
            
WriteUInt16((ushort)MsgTypes.MsgTaskDialog2Packet);
            
WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4Packet);
            
Packet[15] = 112;
            
Packet[16] = 1;
            
Action _Action;
            
String _String;
        }
        public 
Mode Action
        
{
            
get { return (Mode)Packet[14]; }
            
set Packet[14] = (Byte)value; }
        }
        public 
string String
        
{
            
get { return System.BitConverter.ToString(Packet18Packet[17]); }
            
set WriteStringWithLength(value17Packet); }
        }
        public 
byte[] ToArray()
        {
            return 
Packet;
        }
        public 
void Deserialize(byte[] packet)
        {
            
Packet packet;
        }
        public 
void Send(Client.GameState client)
        {
            
client.Send(Packet);
        }
    }



و متنساش تعدل NameProject ل اسم البروجكت بتاعك



2 - داخل كلاس Player.cs

هتبحث عن

public uint Lukypionts

و تحط تحتها الريجون دة


كود:
#region GameUpdates - AbuMaryam
        
private uint _updatelist;
        public 
uint UpdateList
        
{
            
get { return _updatelist; }
            
set
            
{
                
_updatelist value;
                
UpdateDatabase("updatelist"value);
            }
        }
        
#endregion 

ولو جابلك ايورو ف _updatelist تقدر تمسح السطر دة private uint _updatelist;


3 - داخل كلاس MsgGeneralData.cs


هتبحث عن

client.LoadData();

وبعدها على طول ضيف الريجون دة


كود:
#region Game Updates
                    
if (client.Entity.UpdateList == 0)
                    {
                        
client.Send(new GameUpdates(GameUpdates.Mode.Header"Welcome To, ServerName Online" DateTime.Now.ToString()));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"1.New skills have been added\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"2.Support ServerName Online By Invite ur Friends\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"3.Don't trust anyone claiming that he is the GM/PM\n"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"4.If you found any bug you can repot it By ServerName"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Body"5.Enjoy Playing ServerName Online with us and invite friends!"));
                        
client.Send(new GameUpdates(GameUpdates.Mode.Footer"A lot of surprises awaited during these days"));
                        
client.Entity.UpdateList += 1;
                    }
                    
#endregion 


و متنساش تعدل ServerName لـ اسم سيرفرك لو حابب تسيب الرسالة زي ما هيا


و بكدة تقدر تعمل Rebuild للبروجكت و تجرب و تبلغني النتائج

واي حد عندة استفسار تجاة اي حاجة ف الموضوع يبلغني و ان شاء الله هكون موجود

و بكدة اكون خلصت الموضوع و اقدر اقولكم امشو اطلعو برة

اشوفكم بخير