Help with reset attributes NPC.

08/07/2009 19:03 killermickle#1
Ok, It resets the attributes but doesnt add statpoints or refresh maxhealth and im assuming it doesnt refresh statpoints.

I have
Code:
                                if (Control == 4)
                                {
                                    DataBase.GetStats(MyChar);
                                    MyChar.MinAtk = MyChar.Str;
                                    MyChar.MaxAtk = MyChar.Str;
                                    MyChar.MaxHP = MyChar.BaseMaxHP();

                                    int StatTotal = MyChar.Str + MyChar.Agi + MyChar.Vit + MyChar.Spi;
                                    MyChar.Str = 0;
                                    MyChar.Agi = 0;
                                    MyChar.Vit = 0;
                                    MyChar.Spi = 0;
                                    MyChar.StatP += ushort.Parse(Convert.ToString(StatTotal));

                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 0, MyChar.StatP));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 0, MyChar.MaxHP));

                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 13, MyChar.Level));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 16, MyChar.Str));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 17, MyChar.Agi));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 15, MyChar.Vit));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 14, MyChar.Spi));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 0, MyChar.CurHP));
                                    SendPacket(General.MyPackets.Vital((long)MyChar.UID, 2, MyChar.MaxMana()));
                                    SendPacket(General.MyPackets.GeneralData((long)MyChar.UID, 0, 0, 0, 92));
                                    if (MyChar.MyGuild != null)
                                        MyChar.MyGuild.Refresh(MyChar);
                                }
08/07/2009 19:07 Pete1990#2
Here is mine works fine

HTML Code:
if (Control == 1)
                                {
                                    if (MyChar.RBCount >= 1)
                                    {
                                        if (MyChar.InventoryContains(1088000, 1))
                                        {
                                            MyChar.RemoveItem(MyChar.ItemNext(1088000));

                                            uint Points = 0;

                                            Points += MyChar.Str;
                                            Points += MyChar.Spi;
                                            Points += MyChar.Agi;
                                            Points += MyChar.Vit;

                                            MyChar.StatP += (ushort)Points;

                                            MyChar.Str = 0;
                                            MyChar.Spi = 0;
                                            MyChar.Agi = 0;
                                            MyChar.Vit = 0;

                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 16, MyChar.Str));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 17, MyChar.Agi));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 15, MyChar.Vit));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 14, MyChar.Spi));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 5, (ulong)MyChar.Exp));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 2, MyChar.MaxMana()));
                                            SendPacket(General.MyPackets.GeneralData((long)MyChar.UID, 0, 0, 0, 92));
                                            SendPacket(General.MyPackets.Vital((long)MyChar.UID, 0, MyChar.CurHP));
                                            SendPacket(General.MyPackets.Vital(MyChar.UID, 11, MyChar.StatP));

                                            MyChar.SaveStatPoints();
                                            MyChar.Save();
                                            SendPacket(General.MyPackets.NPCSay("You cannot reallot your stats manually, Please use the /allot command."));
                                            SendPacket(General.MyPackets.NPCSay(" Command Breakdown: /allot [vit, str, agi, spi] [Amount to ADD to the Stat]"));
                                            SendPacket(General.MyPackets.NPCLink("I see, Thanks.", 255));
                                            SendPacket(General.MyPackets.NPCSetFace(30));
                                            SendPacket(General.MyPackets.NPCFinish());
                                        }
                                        else
                                        {
                                            SendPacket(General.MyPackets.NPCSay("You don't have a Dragonball."));
                                            SendPacket(General.MyPackets.NPCLink("I see.", 255));
                                            SendPacket(General.MyPackets.NPCSetFace(30));
                                            SendPacket(General.MyPackets.NPCFinish());
                                        }
                                    }
                                    else
                                    {
                                        SendPacket(General.MyPackets.NPCSay("You cannot reallot your attribute points if you aren't reborn."));
                                        SendPacket(General.MyPackets.NPCLink("I see.", 255));
                                        SendPacket(General.MyPackets.NPCSetFace(30));
                                        SendPacket(General.MyPackets.NPCFinish());
                                    }
                                }
                            }
08/07/2009 19:17 killermickle#3
Yay! my SaveStatPoints works great as does your script.

Thanks