[Request]How Make Items NPC for one time only.

11/29/2008 16:17 DarkNess~#1
My title please


[Only registered and activated users can see links. Click Here To Register...]

I'm trying and i already do it


but when server restart all values back to 0 again


public byte gotitems = 0;


Code:
                        if (CurrentNPC == 790)
                        {
                            if (Control == 1)
                            {
                                SendPacket(General.MyPackets.NPCSay("You sure you want to Items Trojan?"));
                                SendPacket(General.MyPackets.NPCLink("Yes please.", 5));
                                SendPacket(General.MyPackets.NPCLink("Not,Good Bye.", 255));
                                SendPacket(General.MyPackets.NPCSetFace(30));
                                SendPacket(General.MyPackets.NPCFinish());
                            }
                            if (Control == 5)
                            {

                                if (MyChar.ItemsInInventory < 33)
                                {
                                    if (MyChar.gotitems == 1)
                                    {
                                        SendPacket(General.MyPackets.NPCSay("lol"));
                                        SendPacket(General.MyPackets.NPCLink("Ops, Sorry.", 255));
                                        SendPacket(General.MyPackets.NPCSetFace(30));
                                        SendPacket(General.MyPackets.NPCFinish());
                                    }
                                    else
                                    {
                                        MyChar.AddItem("135999-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//ConquestArmor
                                        MyChar.AddItem("410339-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Sparks Blade
                                        MyChar.AddItem("410339-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Sparks Blade
                                        MyChar.AddItem("120249-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Neck
                                        MyChar.AddItem("150249-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Ring
                                        MyChar.AddItem("160249-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Bota
                                        MyChar.AddItem("112389-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Coronet
                                        MyChar.AddItem("117399-12-7-255-13-13", 0, (uint)General.Rand.Next(346623472));//Brinco
                                        MyChar.updateitems();

                                    }

                                }
                                else
                                {
                                    SendPacket(General.MyPackets.NPCSay("you must have 7 spots in your inventory"));
                                    SendPacket(General.MyPackets.NPCLink("Ops, Sorry.", 255));
                                    SendPacket(General.MyPackets.NPCSetFace(30));
                                    SendPacket(General.MyPackets.NPCFinish());
                                }

                            }
}

Code:
        public static void updateitems(Character Charr)
        {
            
            try
            {
                
                MySqlCommand Command = null;
                Command = new MySqlCommand("UPDATE `Characters` SET `gotitems` = '1' WHERE `Account` = '" + Charr.MyClient.Account + "'", ExternalDatabase.Connection);
                Command.ExecuteNonQuery();
            }
            catch (Exception Exc) { General.WriteLine(Convert.ToString(Exc)); }
        }
11/29/2008 16:36 tanelipe#2
I suppose you should also load the value from database. Not sure where it is done in that source but I'd imagine it's in something like LoadChar or LoadCharacter.
11/29/2008 16:39 !DeX!#3
yeah i Think So
11/29/2008 17:02 DarkNess~#4
this my CharInfo


Code:
public static void GetCharInfo(Character Charr, string UserName)
        {

            try
            {
                MySqlDataAdapter DataAdapter = null;
                DataSet DSet = new DataSet();
                DataAdapter = new MySqlDataAdapter("SELECT * FROM `Characters` WHERE `Account` = '" + UserName + "'", ExternalDatabase.Connection);
                DataAdapter.Fill(DSet, "Accounts");
                if (DSet != null && DSet.Tables["Accounts"].Rows.Count > 0)
                {
                    DataRow DR = DSet.Tables["Accounts"].Rows[0];

                    Charr.UID = (uint)DR["UID"];
                    Charr.Name = (string)DR["CharName"];
                    Charr.Job = Convert.ToByte((uint)DR["Job"]);
                    Charr.Level = Convert.ToByte((uint)DR["Level"]);
                    Charr.Exp = (uint)DR["Exp"];
                    Charr.Model = Convert.ToUInt16((uint)DR["Model"]);
                    Charr.Avatar = Convert.ToUInt16((uint)DR["Avatar"]);
                    Charr.Hair = Convert.ToUInt16((uint)DR["Hair"]);
                    Charr.LocX = Convert.ToUInt16((uint)DR["LocationX"]);
                    Charr.LocY = Convert.ToUInt16((uint)DR["LocationY"]);
                    Charr.LocMap = Convert.ToUInt16((uint)DR["LocationMap"]);
                    Charr.Str = Convert.ToUInt16((uint)DR["Strength"]);
                    Charr.Agi = Convert.ToUInt16((uint)DR["Agility"]);
                    Charr.Vit = Convert.ToUInt16((uint)DR["Vitality"]);
                    Charr.Spi = Convert.ToUInt16((uint)DR["Spirit"]);
                    Charr.Silvers = (uint)DR["Money"];
                    Charr.CPs = (uint)DR["CPs"];
                    Charr.CurHP = Convert.ToUInt16((uint)DR["CurrentHP"]);
                    Charr.PKPoints = Convert.ToUInt16((uint)DR["PKPoints"]);
                    Charr.RBCount = Convert.ToByte((uint)DR["RBCount"]);
                    Charr.gotitems = Convert.ToByte((uint)DR["gotitems"]);
                    Charr.PackedInventory = (string)DR["Inventory"];
                    Charr.PackedEquips = (string)DR["Equipment"];
                    Charr.PackedSkills = (string)DR["Skills"];
                    Charr.PackedProfs = (string)DR["Profs"];
                    Charr.WHSilvers = (uint)DR["WHMoney"];
                    Charr.QuestKO = (uint)DR["QuestKO"];
                    Charr.PackedWHs = (string)DR["Warehouses"];
                    Charr.PackedFriends = (string)DR["Friends"];
                    Charr.PackedEnemies = (string)DR["Enemies"];
                    Charr.QuestMob = (string)DR["QuestMob"];
                    Charr.VP = (uint)DR["VP"];
                    Charr.GuildDonation = (uint)DR["GuildDonation"];
                    Charr.StatP = Convert.ToUInt16((uint)DR["StatPoints"]);
                    Charr.GuildID = Convert.ToUInt16((uint)DR["MyGuild"]);
                    Charr.GuildPosition = Convert.ToByte((uint)DR["GuildPos"]);
                    Charr.PrevMap = Convert.ToUInt16((uint)DR["PrevMap"]);
                    if (Guilds.AllGuilds.Contains(Charr.GuildID))
                        Charr.MyGuild = (Guild)Guilds.AllGuilds[Charr.GuildID];
                    Charr.MinAtk = Charr.Str;
                    Charr.MaxAtk = Charr.Str;
                    Charr.Potency = Charr.Level;
                    Charr.RealModel = Charr.Model;
                    Charr.RealAvatar = Charr.Avatar;
                    Charr.MaxHP = Charr.BaseMaxHP();
                    Charr.RealAgi = Charr.Agi;
                }
                else
                    General.WriteLine("Char not found.");
            }
            catch (Exception Exc) { General.WriteLine(Convert.ToString(Exc)); }
        }
i cant do anything else

any help?
11/29/2008 17:12 alexbigfoot#5
this is ur right char info
Code:
public static void GetCharInfo(Character Charr, string UserName)
        {

            try
            {
                MySqlDataAdapter DataAdapter = null;
                DataSet DSet = new DataSet();
                DataAdapter = new MySqlDataAdapter("SELECT * FROM `Characters` WHERE `Account` = '" + UserName + "'", ExternalDatabase.Connection);
                DataAdapter.Fill(DSet, "Accounts");
                if (DSet != null && DSet.Tables["Accounts"].Rows.Count > 0)
                {
                    DataRow DR = DSet.Tables["Accounts"].Rows[0];

                    Charr.UID = (uint)DR["UID"];
                    Charr.Name = (string)DR["CharName"];
                    Charr.Job = Convert.ToByte((uint)DR["Job"]);
                    Charr.Level = Convert.ToByte((uint)DR["Level"]);
                    Charr.Exp = (uint)DR["Exp"];
                    Charr.Model = Convert.ToUInt16((uint)DR["Model"]);
                    Charr.Avatar = Convert.ToUInt16((uint)DR["Avatar"]);
                    Charr.Hair = Convert.ToUInt16((uint)DR["Hair"]);
                    Charr.LocX = Convert.ToUInt16((uint)DR["LocationX"]);
                    Charr.LocY = Convert.ToUInt16((uint)DR["LocationY"]);
                    Charr.LocMap = Convert.ToUInt16((uint)DR["LocationMap"]);
                    Charr.Str = Convert.ToUInt16((uint)DR["Strength"]);
                    Charr.Agi = Convert.ToUInt16((uint)DR["Agility"]);
                    Charr.Vit = Convert.ToUInt16((uint)DR["Vitality"]);
                    Charr.Spi = Convert.ToUInt16((uint)DR["Spirit"]);
                    Charr.Silvers = (uint)DR["Money"];
                    Charr.CPs = (uint)DR["CPs"];
                    Charr.CurHP = Convert.ToUInt16((uint)DR["CurrentHP"]);
                    Charr.PKPoints = Convert.ToUInt16((uint)DR["PKPoints"]);
                    Charr.RBCount = Convert.ToByte((uint)DR["RBCount"]);
                    Charr.gotitems = Convert.ToByte(([U]byte[/U])DR["gotitems"]);
                    Charr.PackedInventory = (string)DR["Inventory"];
                    Charr.PackedEquips = (string)DR["Equipment"];
                    Charr.PackedSkills = (string)DR["Skills"];
                    Charr.PackedProfs = (string)DR["Profs"];
                    Charr.WHSilvers = (uint)DR["WHMoney"];
                    Charr.QuestKO = (uint)DR["QuestKO"];
                    Charr.PackedWHs = (string)DR["Warehouses"];
                    Charr.PackedFriends = (string)DR["Friends"];
                    Charr.PackedEnemies = (string)DR["Enemies"];
                    Charr.QuestMob = (string)DR["QuestMob"];
                    Charr.VP = (uint)DR["VP"];
                    Charr.GuildDonation = (uint)DR["GuildDonation"];
                    Charr.StatP = Convert.ToUInt16((uint)DR["StatPoints"]);
                    Charr.GuildID = Convert.ToUInt16((uint)DR["MyGuild"]);
                    Charr.GuildPosition = Convert.ToByte((uint)DR["GuildPos"]);
                    Charr.PrevMap = Convert.ToUInt16((uint)DR["PrevMap"]);
                    if (Guilds.AllGuilds.Contains(Charr.GuildID))
                        Charr.MyGuild = (Guild)Guilds.AllGuilds[Charr.GuildID];
                    Charr.MinAtk = Charr.Str;
                    Charr.MaxAtk = Charr.Str;
                    Charr.Potency = Charr.Level;
                    Charr.RealModel = Charr.Model;
                    Charr.RealAvatar = Charr.Avatar;
                    Charr.MaxHP = Charr.BaseMaxHP();
                    Charr.RealAgi = Charr.Agi;
                }
                else
                    General.WriteLine("Char not found.");
            }
            catch (Exception Exc) { General.WriteLine(Convert.ToString(Exc)); }
        }
others idk
11/29/2008 17:39 DarkNess~#6
model id removed after replace getinfo

to complet get info may be put something in database.

RBCount
INT( 9 ) UNSIGNED
NOT NULL
DEFAULT 1
11/30/2008 19:10 DarkNess~#7
Char info not working :(