Thnx, Do you have a ETA on this?Just wait. Like I said. It is because I have it all in one .cs. I will make it three files then you can update.
Without deleting anything.
KillPointTracker
Original Idea by Bittiez
Modified by Mortis
What to do to install if you already have Bittiez version installed and in use by players.
Remove old version script.
Replace Base creature edit with one supplied below.
Comment out lines 7400 and 7401
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
m_Points = reader.ReadInt();
m_TotalPoints1 = reader.ReadInt();
//m_RedeemedPoints = reader.ReadInt();
//BoundTo = reader.ReadInt();//Read on startup who it is bound to.
}
Start the server [save shutdown server.
Uncomment lines 7400 and 7401
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
m_Points = reader.ReadInt();
m_TotalPoints1 = reader.ReadInt();
m_RedeemedPoints = reader.ReadInt();
BoundTo = reader.ReadInt();//Read on startup who it is bound to.
}
Restart server [save Your all raedy to rock.
If using for first time. Just add script and use below Basecreature.cs edit
Configurable options:
Lines 295 - 298
private bool Hundred = true; // Default:Change to false if thousand or both = true
private bool Thousand = false; // Change to true if you want Thousands and change Hundred to false. Leave false also it both = true.
private bool Both = false; // Change to true if you want Hundred and Thousand. Leave false if Hundred or Thousand = true.
private bool BankOverPack = false; //Change to true to use add item to players bank instead of Back pack.
Line 7313
public static bool ResOnOff = true;//Change to false if you do not want the resurrect option.
Line 16
PointsCap
Two lines in BaseCreature.cs
if (kpt.RedeemedPoints >= 10000000)
Summery:
Commands:
[add KillPointStone
[kpt brings up a gump to res for points if enabled.
Items:
Kill point stone
kill point tracker
Kill Point Stone if dclicked brings up option to buy a kill point tracker or redeem points.
Kill point tracker if dclicked brings up option to bind to your kill point tracker or unbind for gold.
You need to bind to it to recieve killpoints.
BaseCreature.cs edit.
Add it under these lines. around 1299 and 1230
if ( willKill && from is PlayerMobile )
Timer.DelayCall( TimeSpan.FromSeconds( 10 ), new TimerCallback( ((PlayerMobile) from).RecoverAmmo ) );
#region Tad's Kill Points
if (willKill && from is PlayerMobile || willKill && from is BaseCreature)
{
if (from is BaseCreature)
{
BaseCreature pet = from as BaseCreature;
if (pet.Controlled)
{
Mobile master1 = pet.ControlMaster as Mobile;
foreach (Item i in master1.Backpack.Items)
{
if (i is KillPointTracker)
{
if(KillPointTracker.BoundTo == master1.Serial)
{
KillPointTracker kpt = i as KillPointTracker;
if (kpt.RedeemedPoints >= 10000000)
master1.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!");
else
if (kpt.Points >= kpt.PointsCap)
master1.SendMessage( 32, "You need to redeem points or get another Kill Point Tracker as this one has reached the cap!");
else
if (this is AncientWyrm || this is WhiteWyrm)
{
kpt.Points+= 20;
kpt.TotalPt++;
break;
}
else if (this is BaseChampion || IsParagon )
{
kpt.Points+=100;
kpt.TotalPt++;
break;
}
else
{
kpt.Points++;
kpt.TotalPt++;
break;
}
}
else
{
if ( KillPointTracker.BoundTo != master1.Serial )
master1.SendMessage( 62,"This kill point tracker does not belong or is not bound to you! Therefore you recieve no points.");
}
}
}
}
}
else
{
foreach (Item i in from.Backpack.Items)
{
if (i is KillPointTracker)
{
if(KillPointTracker.BoundTo == from.Serial)
{
KillPointTracker kpt = i as KillPointTracker;
if (kpt.RedeemedPoints >= 10000000)
from.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!");
else
if (kpt.Points >= kpt.PointsCap)
from.SendMessage( 32,"You need to redeemed points or get another Kill Point Tracker as this one has reached the cap!");
else
if (this is AncientWyrm || this is WhiteWyrm)
{
kpt.Points+= 20;
kpt.TotalPt++;
break;
}
else if (this is BaseChampion || IsParagon )
{
kpt.Points+=100;
kpt.TotalPt++;
break;
}
else
{
kpt.Points++;
kpt.TotalPt++;
break;
}
}
else
{
if ( KillPointTracker.BoundTo != from.Serial )
from.SendMessage( 62,"This kill point tracker does not belong or is not bound to you! Therefore you recieve no points.");
}
}
}
}
}
#endregion
You can add different point amounts for different mobs by adding more under the else if's
like
else if (this is BaseChampion || IsParagon )
{
kpt.Points+=200;
kpt.TotalPt++;
break;
}
else if (this is Balron || this is GargoyleDestroyer || this is DemonKnight || this is Devourer )
{
kpt.Points+=100;
kpt.TotalPt++;
break;
}
if (kpt.RedeemedPoints >= 10000000)
master1.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!");
else
if (kpt.Points >= kpt.PointsCap)
master1.SendMessage( 32, "You need to redeem points or get another Kill Point Tracker as this one has reached the cap!");
else
if (kpt.RedeemedPoints >= 10000000)
master1.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!");
break;
else
if (kpt.Points >= kpt.PointsCap)
master1.SendMessage( 32, "You need to redeem points or get another Kill Point Tracker as this one has reached the cap!");
break;
else
i did just use his stone. but dont both scripts relate to the kilpointtracker?
Should this part:
Code:if (kpt.RedeemedPoints >= 10000000) master1.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!"); else if (kpt.Points >= kpt.PointsCap) master1.SendMessage( 32, "You need to redeem points or get another Kill Point Tracker as this one has reached the cap!"); else
Look like this?
Code:if (kpt.RedeemedPoints >= 10000000) master1.SendMessage(32, "You need to get another Kill Point Tracker as this one has reached the redeemed points cap!"); break; else if (kpt.Points >= kpt.PointsCap) master1.SendMessage( 32, "You need to redeem points or get another Kill Point Tracker as this one has reached the cap!"); break; else
break;
The problem here is not that they are switched, its that the item name doesn't update when you bind it, and then when you un bind it it updates to the last update so it will show the name as being bound when its really not, if you log out and back in it will be fixed, I think he needs to add a invalidateproperties to when you bind and unbind it, but I'm not 100% sure if that will fix it or not.Found a bug using a fresh install When you double click it and click on the button to bind it it unbinds it and when you click to unbind it, it binds it