Welcome to RaGEZONE - MMORPG Development Forums (sponsored by tfn.gr) Mark forums read | View Forum Leaders
RaGEZONE - MMORPG Development Forums (sponsored by tfn.gr)

Conquer Releases Discuss, RB Guard at Conquer Online forum; Guard attack players, and give exp to user when he atack mob. I have based on PowerSource. Ok lets begin ...




Reply
Thread Tools
Release RB Guard
 
 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
10-21-2008, 04:05 PM
 
Guard attack players, and give exp to user when he atack mob. I have based on PowerSource.

Ok lets begin

Start with Character.cs

Find:

Code:
        public SingleMob MobTarget = null;
Abowe add:

Code:
        public SingleMob Guard = null;
Find:

Code:
                    if (SkillAttributes[0] == 7)
                    {
Bellow add:

Code:
                        if (SkillId == 4000 && Stamina >= 100)
                        {
                            if (Guard == null)
                            {
                                if (SkillLvl == 0)
                                    
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 0);
                                if (SkillLvl == 1)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 1);
                                if (SkillLvl == 2)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 2);
                                if (SkillLvl == 3)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 3);
                               
                            }
                            else
                            {
                                Guard.Dissappear();

                                if (SkillLvl == 0)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 0);
                                if (SkillLvl == 1)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 1);
                                if (SkillLvl == 2)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 2);
                                if (SkillLvl == 3)
                                    Mobs.NewRBGuard(Convert.ToInt16(MyClient.MyChar.LocX), Convert.ToInt16(MyClient.MyChar.LocY), Convert.ToInt16(MyClient.MyChar.LocMap), MyClient.MyChar.UID, 3);
                             }
                            Stamina = 0;
;
                            MyClient.SendPacket(General.MyPackets.Vital(UID, 9, Stamina));
                        }

search for:

Code:
        public void AddSkillExp(short Type, uint Amount)
        {
            Ready = false;
            Amount *= ExternalDatabase.ProfExpRate;
and bellow add:

Code:
if (Type == 4000) Amount = 1;


Next part is in Entities.cs

Search for:

Code:
SingleMob Mob = new SingleMob(spawn_x, spawn_y, Convert.ToInt16(ThisSpawn[7]), uint.Parse(ThisMob[3]), uint.Parse(ThisMob[3]), short.Parse(ThisMob[6]), short.Parse(ThisMob[7]), UID, ThisMob[2], int.Parse(ThisMob[1]), short.Parse(ThisMob[4]), (byte)General.Rand.Next(8), byte.Parse(ThisMob[5]));
replace it with:

Code:
SingleMob Mob = new SingleMob(spawn_x, spawn_y, Convert.ToInt16(ThisSpawn[7]), uint.Parse(ThisMob[3]), uint.Parse(ThisMob[3]), short.Parse(ThisMob[6]), short.Parse(ThisMob[7]), UID, ThisMob[2], int.Parse(ThisMob[1]), short.Parse(ThisMob[4]), (byte)General.Rand.Next(8), byte.Parse(ThisMob[5]),0,true);
Search for:

Code:
                ExternalDatabase.Mobs = null;
                ExternalDatabase.MobSpawns = null;
                General.WriteLine("Spawned " + MobsSpawned + " mobs.");
            }
            catch (Exception Exc) { General.WriteLine(Convert.ToString(Exc)); }
        }
and bellow add:

Code:
        public static void NewRBGuard(short x, short y, short map, uint owner,short glvl)
        {
            try
            {
                uint UID = (uint)General.Rand.Next(400000, 500000);
                while (AllMobs.Contains(UID))
                {
                    UID = (uint)General.Rand.Next(400000, 500000);
                }
                int gms=0;
                uint ghp=0;
                short gat=0, glv=0;
                string gna="";
                if (glvl == 0)
                {
                    ghp = 10000;
                    gat = 300;
                    gna = "IronGuard";
                    gms = 920;
                    glv = 60;
                }
                else if (glvl == 1)
                {
                    ghp = 20000;
                    gat = 600;
                    gna = "CopperGuard";
                    gms = 920;
                    glv = 90;
                }
                else if (glvl == 2)
                {
                    ghp = 34895;
                    gat = 900;
                    gna = "SilverGuard";
                    gms = 920;
                    glv = 110;
                 }
                else
                {
                    ghp = 60000;
                    gat = 1300;
                    gna = "GoldGuard";
                    gms = 920;
                    glv = 120;
                }
                SingleMob Mob = new SingleMob(x, y, map, ghp, ghp, 150, gat, UID, gna, gms, glv, (byte)General.Rand.Next(8), 7, owner, false);
                AllMobs.Add(UID, Mob);
                Other.Charowner(owner).Guard = Mob;
                World.SpawnMobForPlayers(Mob, true);
                
            }
            catch (Exception Exc) { General.WriteLine(Convert.ToString(Exc)); }
        }
    }
search for:
Code:
        DateTime LastTargetting;
        DateTime LastMove;
        public DateTime Death;
        bool Revive = false;
abbowe add:
Code:
        DateTime LastAtack;
Now search for:
Code:
        public Timer MyTimer = new Timer();
        Character Target = null;
replace it with that:

Code:
        public Timer MyTimer = new Timer();
        
        Character Target = null;
        SingleMob Target2 = null;
        public uint owner = 0;
        Character owner2 = null;
        public bool frev = true;
Search:

Code:
        public SingleMob(short x, short y, short map, uint maxhp, uint curhp, short minatk, short maxatk, uint uid, string name, int mech, short lvl, byte pos, byte Type)
        {
            PosX = x;
            PosY = y;
            Map = map;
            MaxHP = maxhp;
            CurHP = curhp;
            MinAtk = minatk;
            MaxAtk = maxatk;
            UID = uid;
            Name = name;
            Mech = mech;
            Level = lvl;
            Pos = pos;
            XStart = PosX;
            YStart = PosY;
            Alive = true;
            if (Type == 2)
                BossMob = true;
            MType = Type;


            PrevX = PosX;
            PrevY = PosY;

            MyTimer.Interval = 500;
            MyTimer.Elapsed += new ElapsedEventHandler(TimerElapsed);
            MyTimer.Start();
        }
replace it with:

Code:
        public SingleMob(short x, short y, short map, uint maxhp, uint curhp, short minatk, short maxatk, uint uid, string name, int mech, short lvl, byte pos, byte Type, uint owner, bool Alive)
        {
            PosX = x;
            PosY = y;
            Map = map;
            MaxHP = maxhp;
            CurHP = curhp;
            MinAtk = minatk;
            MaxAtk = maxatk;
            UID = uid;
            Name = name;
            Mech = mech;
            Level = lvl;
            Pos = pos;
            XStart = PosX;
            YStart = PosY;
            Alive = true;
            frev = true;
            if (Type == 2)
                BossMob = true;
            MType = Type;
            if (owner != 0)
                owner2 = Other.Charowner(owner);
            PrevX = PosX;
            PrevY = PosY;
            if (MType==7)
            MyTimer.Interval = 100;
            else
            MyTimer.Interval = 500;
            MyTimer.Elapsed += new ElapsedEventHandler(TimerElapsed);
            MyTimer.Start();
        }
Search:

Code:
        public void TimerElapsed(object source, ElapsedEventArgs e)
and replace whole void with:
Code:
        public void TimerElapsed(object source, ElapsedEventArgs e)
        {
            if (MType == 7)
            {
                
                    GetTarget();
            }
            else
            {
                if (DateTime.Now > LastTargetting.AddMilliseconds(2000))
                    GetTarget();
            }
            if (Target != null)
                if (Target.MyClient == null || !Target.MyClient.There || !Target.Alive || !Alive || Target.LocMap != Map)
                    Target = null;

            if (Target != null)
                if (MType != 1 && MType != 4 && MType != 5 && MType != 6)
                    if (Target.Flying)
                        Target = null;

            if (MType == 7)
            {
                if (Target != null) 
                GuardMove(3);
                else if (Target2 != null)
                    GuardMove(2);
                else
                    GuardMove(1);
            }
            else
            {
                if (Target != null)
                    Move();
            }

            if (!Alive)
            {
                if (Revive == false)
                {
                    if (DateTime.Now > Death.AddMilliseconds(3000))
                        Dissappear();
                }
                else
                {
                    if (MType == 2)
                    {
                        if (Map == 1015)
                        {
                            if (DateTime.Now > Death.AddMilliseconds(60000))
                                ReSpawn();
                        }
                        if (Map != 1015)
                        {
                            if (DateTime.Now > Death.AddMilliseconds(600000))
                                ReSpawn();
                        }
                    }
                    if (MType == 0)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();
                    }
                    if (MType == 1)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();
                    }
                    if (MType == 4)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();
                    }
                    if (MType == 3)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();

                    }
                    if (MType == 5)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();
                    }
                    if (MType == 6)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(10000))
                            ReSpawn();
                    }
                    if (MType == 7)
                    {
                        if (DateTime.Now > Death.AddMilliseconds(100))
                            ReSpawn();
                    }
                }
            }
        }
Same thing with:

Code:
        public void GetTarget()
        {
            LastTargetting = DateTime.Now;
            if (MType != 1&&MType !=7)
                Target = Other.CharNearest((uint)PosX, (uint)PosY, (uint)Map, false);
            else if (MType == 1)
                Target = Other.CharNearest((uint)PosX, (uint)PosY, (uint)Map, true);
            else if (MType == 7)
            {
                if (owner2.MobTarget != null || owner2.PTarget != null)
                {
                    if (owner2.MobTarget != null)
                    {
                        Target2 = owner2.MobTarget;
                        Target = null;
                    }
                    if (owner2.PTarget != null)
                    {
                        Target = owner2.PTarget;
                        Target2 = null;
                    }
                }
                else
                {
                    Target = Target;
                    Target2 = Target2;
                }
            }
        }
Search:
Code:
public void Move()
Abowe add:

Code:
        public void GuardMove(short opc)
        {
            if (Alive)
            {
                if (owner2 != null && owner2.Alive && owner2.MyClient.Online&&Map==owner2.LocMap)
                {
                    if (DateTime.Now > LastMove.AddMilliseconds(500))
                    {

                        if (MyMath.PointDistance(PosX, PosY, owner2.LocX, owner2.LocY) <= 25)
                        {
                            //Created by Bisiol
                            if (opc == 1)
                            {
                                if ((MyMath.PointDistance(PosX, PosY, owner2.LocX, owner2.LocY) >= 2) && (MyMath.PointDistance(PosX, PosY, owner2.LocX, owner2.LocY) <= 25))
                                {
                                    byte ToDir = (byte)(7 - (Math.Floor(MyMath.PointDirecton(PosX, PosY, owner2.LocX, owner2.LocY) / 45 % 8)) - 1 % 8);


                                    ToDir = (byte)((int)ToDir % 8);
                                    short AddX = 0;
                                    short AddY = 0;
                                    if (ToDir == 255)
                                        ToDir = 7;
                                    Pos = ToDir;

                                    switch (ToDir)
                                    {
                                        case 0:
                                            {
                                                AddY = 1;
                                                break;
                                            }
                                        case 1:
                                            {
                                                AddX = -1;
                                                AddY = 1;
                                                break;
                                            }
                                        case 2:
                                            {
                                                AddX = -1;
                                                break;
                                            }
                                        case 3:
                                            {
                                                AddX = -1;
                                                AddY = -1;
                                                break;
                                            }
                                        case 4:
                                            {
                                                AddY = -1;
                                                break;
                                            }
                                        case 5:
                                            {
                                                AddX = 1;
                                                AddY = -1;
                                                break;
                                            }
                                        case 6:
                                            {
                                                AddX = 1;
                                                break;
                                            }
                                        case 7:
                                            {
                                                AddY = 1;
                                                AddX = 1;
                                                break;
                                            }
                                    }

                                    PrevX = PosX;
                                    PrevY = PosY;
                                    PosX += AddX;
                                    PosY += AddY;
                                    World.MobMoves(this, ToDir);
                                    World.SpawnMobForPlayers(this, true);
                                    PrevX = PosX;
                                    PrevY = PosY;
                                    PosX += AddX;
                                    PosY += AddY;
                                    World.MobMoves(this, ToDir);
                                    World.SpawnMobForPlayers(this, true);


                                }
                                else if (MyMath.PointDistance(PosX, PosY, owner2.LocX, owner2.LocY) < 2)
                                { }
                            }
                            else if (opc == 2)
                            {

                                if (DateTime.Now > LastAtack.AddMilliseconds(1000))
                                {
                                    if (MyMath.PointDistance(PosX, PosY, Target2.PosX, Target2.PosY) <= 10)
                                    {
                                        LastMove = DateTime.Now;

                                        int DMG = Convert.ToInt32(MaxAtk);

                                        if (DMG < 1)
                                            DMG = 1;

                                       
                                        uint GEXP=0;
                                        if (DMG<=Target2.CurHP)
                                            GEXP=(uint)DMG;
                                        else if(DMG>Target2.CurHP)
                                            GEXP=Target2.CurHP;
                                        Target2.GetDamage((uint)DMG);
                                        if (Target2.MType != 1 && Target2.MType != 7)
                                        { owner2.AddExp(GEXP,true); }
                                        foreach (DictionaryEntry DE in World.AllChars)
                                        {
                                            Character Charr = (Character)DE.Value;

                                            if (Charr.MyClient.Online)
                                                if (MyMath.CanSeeBig(PosX, PosY, Charr.LocX, Charr.LocY))
                                                {
                                                    Charr.MyClient.SendPacket(General.MyPackets.MobSkillUse2(this, Target2, (uint)DMG, 1002, 1));
                                                }
                                        }
                                        if (Target2.CurHP <= 0)
                                            Target2 = null;
                                        LastAtack = DateTime.Now;
                                    }
                                    else if ((MyMath.PointDistance(PosX, PosY, Target2.PosX, Target2.PosY) >= 11) && (MyMath.PointDistance(PosX, PosY, Target2.PosX, Target2.PosY) <= 25))
                                    {
                                        byte ToDir = (byte)(7 - (Math.Floor(MyMath.PointDirecton(PosX, PosY, Target2.PosX, Target2.PosY) / 45 % 8)) - 1 % 8);



                                        ToDir = (byte)((int)ToDir % 8);
                                        short AddX = 0;
                                        short AddY = 0;
                                        if (ToDir == 255)
                                            ToDir = 7;
                                        Pos = ToDir;

                                        switch (ToDir)
                                        {
                                            case 0:
                                                {
                                                    AddY = 1;
                                                    break;
                                                }
                                            case 1:
                                                {
                                                    AddX = -1;
                                                    AddY = 1;
                                                    break;
                                                }
                                            case 2:
                                                {
                                                    AddX = -1;
                                                    break;
                                                }
                                            case 3:
                                                {
                                                    AddX = -1;
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 4:
                                                {
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 5:
                                                {
                                                    AddX = 1;
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 6:
                                                {
                                                    AddX = 1;
                                                    break;
                                                }
                                            case 7:
                                                {
                                                    AddY = 1;
                                                    AddX = 1;
                                                    break;
                                                }
                                        }

                                        PrevX = PosX;
                                        PrevY = PosY;
                                        PosX += AddX;
                                        PosY += AddY;
                                        World.MobMoves(this, ToDir);
                                        World.SpawnMobForPlayers(this, true);
                                        PrevX = PosX;
                                        PrevY = PosY;
                                        PosX += AddX;
                                        PosY += AddY;
                                        World.MobMoves(this, ToDir);
                                        World.SpawnMobForPlayers(this, true);


                                    }


                                }
                            }
                            else if (opc == 3)
                            {

                                if (DateTime.Now > LastAtack.AddMilliseconds(1000))
                                {
                                    if (MyMath.PointDistance(PosX, PosY, Target.LocX, Target.LocY) <= 10)
                                    {
                                        int DMG = MaxAtk - (int)Target.MDefense;
                                        if (DMG < 1)
                                            DMG = 1;

                                        if (Target.GetHitDie((uint)DMG))
                                        {
                                            if (MType == 7)
                                            {
                                                World.MobAttacksCharSkill(this, Target, (uint)DMG, 1002, 1);

                                            }

                                        }
                                        else
                                        {
                                            if (MType == 7)
                                                World.MobAttacksCharSkill(this, Target, (uint)DMG, 1002, 1);
                                        }
                                        if (Target.CurHP <= 0)
                                            Target = null;
                                        LastAtack = DateTime.Now;
                                    }
                                    else if ((MyMath.PointDistance(PosX, PosY, Target.LocX, Target.LocY) >= 11) && (MyMath.PointDistance(PosX, PosY, Target.LocX, Target.LocY) <= 25))
                                    {
                                        byte ToDir = (byte)(7 - (Math.Floor(MyMath.PointDirecton(PosX, PosY, Target.LocX, Target.LocY) / 45 % 8)) - 1 % 8);



                                        ToDir = (byte)((int)ToDir % 8);
                                        short AddX = 0;
                                        short AddY = 0;
                                        if (ToDir == 255)
                                            ToDir = 7;
                                        Pos = ToDir;

                                        switch (ToDir)
                                        {
                                            case 0:
                                                {
                                                    AddY = 1;
                                                    break;
                                                }
                                            case 1:
                                                {
                                                    AddX = -1;
                                                    AddY = 1;
                                                    break;
                                                }
                                            case 2:
                                                {
                                                    AddX = -1;
                                                    break;
                                                }
                                            case 3:
                                                {
                                                    AddX = -1;
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 4:
                                                {
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 5:
                                                {
                                                    AddX = 1;
                                                    AddY = -1;
                                                    break;
                                                }
                                            case 6:
                                                {
                                                    AddX = 1;
                                                    break;
                                                }
                                            case 7:
                                                {
                                                    AddY = 1;
                                                    AddX = 1;
                                                    break;
                                                }
                                        }

                                        PrevX = PosX;
                                        PrevY = PosY;
                                        PosX += AddX;
                                        PosY += AddY;
                                        World.MobMoves(this, ToDir);
                                        World.SpawnMobForPlayers(this, true);
                                        PrevX = PosX;
                                        PrevY = PosY;
                                        PosX += AddX;
                                        PosY += AddY;
                                        World.MobMoves(this, ToDir);
                                        World.SpawnMobForPlayers(this, true);


                                    }


                                }
                            }
                           
                        }
                        else
                        {
                            Gjump();
                            World.SpawnMobForPlayers(this, true);
                            Target = null;
                            Target2 = null;
                        }

                        LastMove = DateTime.Now;
                    }
                }
                else
                    Dissappear();
            }
        }
Find and replace:

Code:
        public void Dissappear()
        {
            World.RemoveEntity(this);
            Revive = true;
        }
with that:

Code:
        public void Dissappear()
        {
            if (MType == 7&&frev==false)
            {                
                World.RemoveEntity(this);
                Mobs.AllMobs.Remove(this);
                Alive = false;
            }
            else if (MType == 7 && frev == true)
            {
                World.RemoveEntity(this);
                Revive = true;
                frev = false;
            }
            else
            {
                World.RemoveEntity(this);
                Revive = true;
            }
        }
find:

Code:
        public void ReSpawn()
        {
            CurHP = MaxHP;
            Alive = true;
            PosX = XStart;
            PosY = YStart;
            PrevX = PosX;
            PrevY = PosY;
            World.MobReSpawn(this);
            Revive = false;
        }
bellow add:

Code:
        public void Gjump()
        {
            PosX = (short)owner2.LocX;
            PosY = (short)owner2.LocY;            
            PrevX = PosX;
            PrevY = PosY;
            World.GuardReSpawn(this);
        }
Next: Database.cs(External one)

find:

Code:
    public static void DefineSkills()
    {
bellow add:

Code:
        SkillAttributes[4000] = new ushort[4][];
        SkillAttributes[4000][0] = new ushort[6] { 7, 0, 0, 0, **** 0 };
        SkillAttributes[4000][1] = new ushort[6] { 7, 0, 0, 0, **** 0 };
        SkillAttributes[4000][2] = new ushort[6] { 7, 0, 0, 0, **** 0 };
        SkillAttributes[4000][3] = new ushort[6] { 7, 0, 0, 0, **** 0 };
        SkillsDone.Add(4000, 3);
search:

Code:
    public static uint NeededSkillExp(short SkillId, byte Level)
    {
bellow add:

Code:
        if (SkillId == 4000)
        {
            if (Level == 0)
                return 100;
            if (Level == 1)
                return 300;
            if (Level == 2)
                return 500;
            else return 0;
        }
Next Other.cs:
search for:

Code:
public static bool CharExist(string Needle, string HayStack)
abowe add:

Code:
        public static Character Charowner(uint uid)
        {
            try
            {
                
                Character ownerchar = null;
                foreach (DictionaryEntry DE in World.AllChars)
                {
                    Character Charr = (Character)DE.Value;
                    if (uid == Charr.UID)
                     
                                ownerchar = Charr;
                                
                            

                }
                return ownerchar;
            }
            catch (Exception Exc) { General.WriteLine(Exc.ToString()); return null; }
        }
Next Packets.cs:
search for:

Code:
        public byte[] SkillUse(Character Charr, Hashtable Targets, Hashtable PTargets, Hashtable NPCTargets, short AimX, short AimY, short SkillId, byte SkillLvl, byte Switch, uint OneTarget, uint TargetDMG)
        {
abowe add:

Code:
        public byte[] MobSkillUse2(SingleMob Mob, SingleMob Attacked, uint DMG, ushort SkillId, byte SkillLevel)
        {
            ushort PacketType = 1105;
            byte[] Packet = new byte[32];

            fixed (byte* p = Packet)
            {
                *((ushort*)p) = (ushort)Packet.Length;
                *((ushort*)(p + 2)) = (ushort)PacketType;
                *((uint*)(p + 4)) = (uint)Mob.UID;
                *((ushort*)(p + 8)) = (ushort)Attacked.PosX;
                *((ushort*)(p + 10)) = (ushort)Attacked.PosY;
                *((ushort*)(p + 12)) = (ushort)SkillId;
                *((ushort*)(p + 14)) = (ushort)SkillLevel;
                *(p + 16) = 1;
                *((uint*)(p + 20)) = (uint)Attacked.UID;
                *((uint*)(p + 24)) = (uint)DMG;
            }
            return Packet;
        }
Next World.cs:
search:

Code:
public static void MobDissappear(SingleMob Mob)
abowe add:

Code:
        public static void GuardReSpawn(SingleMob Mob)
        {
            lock (AllChars)
            {
                foreach (DictionaryEntry DE in AllChars)
                {
                    Character Charr = (Character)DE.Value;

                    if (Charr.MyClient.Online)
                        if (Mob.Map == Charr.LocMap)
                            if (MyMath.CanSee(Mob.PosX, Mob.PosY, Charr.LocX, Charr.LocY))
                            {
                                Charr.MyClient.SendPacket(General.MyPackets.SpawnMob(Mob));
                            }
                }
            }
        }
I hope it will be usefull for someone:)
BTW post your comments positive or negative.
Bisiol


Edit1 I forget something:P
That fragment is for block you from attacking your guard

In Client.cs
search:
Code:
                            else if (Target > 400000 && Target < 500000)
                            {
                                SingleMob TargetMob = (SingleMob)Mobs.AllMobs[Target];

                                MyChar.MobTarget = null;

                                if (TargetMob != null)
                                {
                                    MyChar.AtkType = (byte)AttackType;
                                    MyChar.MobTarget = TargetMob;
                                }
                            }
and replace it with:
Code:
                            else if (Target > 400000 && Target < 500000)
                            {
                                if (MyChar.Guard != null)
                                {
                                    if (Target != MyChar.Guard.UID)
                                    {
                                        SingleMob TargetMob = (SingleMob)Mobs.AllMobs[Target];

                                        MyChar.MobTarget = null;

                                        if (TargetMob != null)
                                        {
                                            MyChar.AtkType = (byte)AttackType;
                                            MyChar.MobTarget = TargetMob;
                                        }

                                    }
                                }
                                else
                                {
                                    SingleMob TargetMob = (SingleMob)Mobs.AllMobs[Target];

                                    MyChar.MobTarget = null;

                                    if (TargetMob != null)
                                    {
                                        MyChar.AtkType = (byte)AttackType;
                                        MyChar.MobTarget = TargetMob;
                                    }


                                }
                            }
And BlueName stuffs:
Character.cs:
search(4 times) for :
Code:
if (PKMode == 0 || Mob.MType != 1)
and replace all with:
Code:
if (PKMode == 0 || Mob.MType != 1 && Mob.MType != 7)
search (3 times):
Code:
PKMode == 0 || Target.MType != 1
and replace all with:
Code:
PKMode == 0 || Target.MType != 1 && Target.MType != 7
search(3 times):
Code:
Target.MType == 1
and replace all :
Code:
Target.MType == 1 || Target.MType == 7
search(4 times):
Code:
Mob.MType == 1
replace all with:
Code:
Mob.MType == 1||Mob.MType == 7
Search(2 times):
Code:
MobTarget.MType == 1
replace with:
Code:
MobTarget.MType == 1 || MobTarget.MType == 7

Last edited by bisiol; 10-21-2008 at 06:07 PM.
 
 
permalink
 

RaGEZONE is proudly sponsored by
 
Member

Rank: Omicron


Reply With Quote
 
Join Date: Oct 2007
Posts: 28
10-21-2008, 07:33 PM
 
dude I love you :D thx thx thx thx !
the last thing we need is a Shop Flag working :P
 
 
permalink
 

 
RPG Guru

Rank: Member


Reply With Quote
 
Join Date: Feb 2008
Location: England
Posts: 338
10-21-2008, 08:20 PM
 
I might release that ^^ [edit] No actually LOL
 
 
permalink
 


 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jul 2008
Posts: 17
10-22-2008, 11:06 AM
 
if i search in database.cs public static void DefineSkills()
{ it says it cant find it
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
10-22-2008, 11:40 AM
 
Quote: Originally Posted by bankpas View Post
if i search in database.cs public static void DefineSkills()
{ it says it cant find it
External database
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jul 2008
Posts: 17
10-22-2008, 12:10 PM
 
where is the external db0.o nvm found it>.>

now it says you cannot use that magic attack currently

Last edited by bankpas; 10-22-2008 at 01:50 PM.
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
10-22-2008, 01:42 PM
 
Quote: Originally Posted by bankpas View Post
where is the external db0.o
in database folder
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jul 2008
Posts: 17
10-22-2008, 03:47 PM
 
it doesnt work for me:(
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
10-22-2008, 05:31 PM
 
Quote: Originally Posted by bankpas View Post
it doesnt work for me:(
With source you use?
and what is the error
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jul 2008
Posts: 17
10-22-2008, 05:44 PM
 
using steal v1 source and when i try to use guard nothing hapends
 
 
permalink
 

 
Alpha

Rank: New Blood


Reply With Quote
 
Join Date: Apr 2006
Posts: 125
10-22-2008, 05:49 PM
 
thx so much bro its work and who want to test go there [Only Registered and Activated Users Can See Links. Click Here To Register...]
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jul 2008
Posts: 17
10-22-2008, 05:54 PM
 
im going to try it agian deleted my source file and i hope it works now;)
 
 
permalink
 

 
RaGEZONER

Rank: Omicron


Reply With Quote
 
Join Date: Aug 2008
Posts: 87
10-25-2008, 08:45 AM
 
This isn't your guide give it credits!
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
10-25-2008, 10:47 AM
 
Quote: Originally Posted by Basjee View Post
This isn't your guide give it credits!
lol its my guide and my code
 
 
permalink
 

 
Member

Rank: Omicron


Reply With Quote
 
Join Date: Aug 2008
Posts: 25
11-02-2008, 03:48 PM
 
I got the same problem as bankpas there is no errors that I see but whenever I do the skill (right click) nothing happens.

IT could be that I did some steps wrong but I can't find external database either and another thing also so I might redo mine too
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2005
Posts: 13
11-02-2008, 08:23 PM
 
Quote: Originally Posted by n0mansland View Post
I got the same problem as bankpas there is no errors that I see but whenever I do the skill (right click) nothing happens.

IT could be that I did some steps wrong but I can't find external database either and another thing also so I might redo mine too
its not work coz you must add that skill

if you use powersource you have external database in other folder, if you use other source you must add it where you have other skills.

you must look for public static void DefineSkills() and public static uint NeededSkillExp(short SkillId, byte Level)
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2008
Posts: 18
11-22-2008, 03:38 AM
 
How do i acess:

public static void DefineSkills()
{

in my external database?
 
 
permalink
 

 
Newbie

Rank: Omicron


Reply With Quote
 
Join Date: Jun 2008
Posts: 18
11-22-2008, 04:01 AM
 
Nevermind, but i got "You cannot use that magic attack currently" in the top left
 
 
permalink
 

Reply

Thread Tools