Eae manolos, está ai a npc WindSage, que nem todas as sources vem com a npc com a opção para pegar o xpskill "FatalStrike", código abaixo:
Procurem o arquivo "Dialog.cs" abram ele e procurem por : #region WindSage copiem tudo desde " #region WindSage" até o segundo "#endregion" e colem o código abaixo:
Procurem o arquivo "Dialog.cs" abram ele e procurem por : #region WindSage copiem tudo desde " #region WindSage" até o segundo "#endregion" e colem o código abaixo:
- Spoiler:
- #region WindSage
case 4720:
{
byte mClass = 50;
byte MClass = 55;
string Class = "ninja";
switch (npcRequest.OptionID)
{
case 0:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
dialog.Text("I am the master of the no sound attack and the master of the katanas. As I see, you started your way on conquering this world. I will try to help you teaching you warrir skills and promoting you.");
dialog.Option("Promote me.", 1);
dialog.Option("Learn skills.", 2);
dialog.Option("Learn Pure skills.", 4);
dialog.Option("Claim bound items.", 49);
dialog.Option("Wait a minute.", 255);
dialog.Send();
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
#region BoundItems
case 49:
{
dialog.Text("We just found some equipment, and I thought that we should give them to our pupils so they can be less defeatable.");
if (!client.HeadgearClaim)
dialog.Option("Headgear (Lvl 15).", 50);
if (!client.RingClaim)
dialog.Option("Ring (Lvl 40).", 51);
if (!client.NecklaceClaim)
dialog.Option("Necklace (Lvl 50).", 52);
if (!client.ArmorClaim)
dialog.Option("Armor (Lvl 70).", 53);
dialog.Option("Next.", 48);
dialog.Option("Nothing.", 255);
dialog.Send();
break;
}
case 48:
{
dialog.Text("We just found some equipment, and I thought that we should give them to our pupils so they can be less defeatable.");
if (!client.BootsClaim)
dialog.Option("Boots (Lvl 80).", 54);
if (!client.TowerClaim)
dialog.Option("Tower (Lvl 100).", 55);
if (!client.FanClaim)
dialog.Option("Fan (Lvl 100).", 56);
if (!client.WeaponClaim)
dialog.Option("Weapon (Lvl 110).", 57);
dialog.Option("Back.", 49);
dialog.Option("Nothing.", 255);
dialog.Send();
break;
}
case 50:
{
uint itemid = 123009;
byte level = 15;
if (!client.HeadgearClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.HeadgearClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 51:
{
uint itemid = 150079;
byte level = 40;
if (!client.RingClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.RingClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 52:
{
uint itemid = 120099;
byte level = 50;
if (!client.NecklaceClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.NecklaceClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 53:
{
uint itemid = 135069;
byte level = 70;
if (!client.ArmorClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.ArmorClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 54:
{
uint itemid = 160159;
byte level = 80;
if (!client.BootsClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.BootsClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 55:
{
uint itemid = 202009;
byte level = 100;
if (!client.TowerClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.TowerClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 56:
{
uint itemid = 201009;
byte level = 100;
if (!client.FanClaim)
{
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.FanClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 57:
{
byte level = 100;
if (!client.WeaponClaim)
{
ISkill proff = null;
ushort maxlevel = 0;
foreach (var prof in client.Proficiencies.Values)
{
if (maxlevel < prof.Level && prof.ID != 0)
{
maxlevel = prof.Level;
proff = prof;
}
}
if (proff == null)
return;
uint itemid = (uint)(proff.ID * 1000 + 219);
if (!Conquer_Online_Server.Database.ConquerItemInformation.BaseInformations.ContainsKey(itemid))
{
Console.WriteLine("invalid claim weapon " + itemid);
return;
}
if (client.Entity.Level >= level)
{
ConquerItem item = new ConquerItem(true);
item.ID = itemid; item.Color = Conquer_Online_Server.Game.Enums.Color.White;
item.Durability = item.MaximDurability = Conquer_Online_Server.Database
.ConquerItemInformation.BaseInformations[itemid].Durability;
item.Bound = true;
item.Plus = 3;
item.SocketOne = Conquer_Online_Server.Game.Enums.Gem.EmptySocket;
if (client.Inventory.Add(item, Conquer_Online_Server.Game.Enums.ItemUse.CreateAndAdd))
{
client.WeaponClaim = true;
}
else
{
dialog.Text("You need atleast one free slot in your inventory.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You don't have atleast level " + level + ".");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You cannot claim it twice.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
#endregion
case 1:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Class == MClass)
{
dialog.Text("You cannot be promoted anymore. You have mastered your class.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("To promote now you need" + client.PromoteItemNameNeed + " level " + client.PromoteLevelNeed + ".");
dialog.Option("Promote me sir.", 3);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 3:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Class == MClass)
{
dialog.Text("You cannot be promoted anymore. You have mastered your class.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
if (client.PromoteItemNeed == 721020)
{
if (client.Inventory.Remove("moonbox"))
{
client.Inventory.Add(client.PromoteItemGain, 0, 1);
client.Entity.Class++;
dialog.Text("Congratulations! You have been promoted.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
return;
}
if (client.Inventory.Contains(client.PromoteItemNeed, client.PromoteItemCountNeed) && client.Entity.Level >= client.PromoteLevelNeed)
{
client.Inventory.Remove(client.PromoteItemNeed, client.PromoteItemCountNeed);
client.Inventory.Add(client.PromoteItemGain, 0, 1);
client.Entity.Class++;
dialog.Text("Congratulations! You have been promoted.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't meet the requierments.");
dialog.Option("Ahh.", 255);
dialog.Send();
}
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 4:
{
if (client.Entity.Class >= 52 && client.Entity.FirstRebornClass == 55 && client.Entity.SecondRebornClass == 55)
{
if (!client.AddSpell(LearnableSpell(6003)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("Congratulations! you have learned Counter-Kill.");
dialog.Option("Thank you.", 255);
dialog.Send();
}
else
{
dialog.Text("You are not allowed, I think your not promoted yet or your not pure Ninja.");
dialog.Option("Thank you.", 255);
dialog.Send();
}
break;
}
case 2:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
dialog.Text("Let me know what you want to learn. '[...]' and '{...}' means ninja as second life and ninja as third life.");
dialog.Option("TwofoldBlades (Lvl 40).", 5);
dialog.Option("ToxicFog (Lvl 70).", 6);
dialog.Option("PoisonStar [Lvl 70].", 7);
dialog.Option("CounterKill {Lvl 70}).", ;
dialog.Option("ArcherBane (Lvl 110).", 9);
dialog.Option("ShurikenVortex (Lvl 70).", 10);
dialog.Option("FatalStrike (Lvl 15).", 11);
dialog.Option("Nothing.", 255);
dialog.Send();
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 5:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 40)
{
if (!client.AddSpell(LearnableSpell(6000)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the TwofoldBlades.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be level 23 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 6:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 70)
{
if (!client.AddSpell(LearnableSpell(6001)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the ToxicFog.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be level 70 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 7:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 70)
{
if ((client.Entity.Reborn == 1 && client.Entity.Class == 55) || (client.Entity.Reborn == 2 && client.Entity.SecondRebornClass == 55))
{
if (!client.AddSpell(LearnableSpell(6002)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the PoisonStar.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be ninja in the second life.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You need to be level 70 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 8:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 70)
{
if (client.Entity.Reborn == 2 && client.Entity.Class == 55)
{
if (!client.AddSpell(LearnableSpell(6003)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the CounterKill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be ninja in the third life.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("You need to be level 70 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 9:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 110)
{
if (!client.AddSpell(LearnableSpell(6004)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the ArcherBane.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be level 70 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 11:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 70)
{
if (!client.AddSpell(LearnableSpell(6010)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the ShurikenVortex.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be level 70 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
case 10:
{
if (client.Entity.Class >= mClass && client.Entity.Class <= MClass)
{
if (client.Entity.Level >= 15)
{
if (!client.AddSpell(LearnableSpell(6011)))
{
dialog.Text("You already know this skill.");
dialog.Option("Thank you master.", 255);
dialog.Send();
break;
}
dialog.Text("You have learned the FatalStrike.");
dialog.Option("Thank you master.", 255);
dialog.Send();
}
else
{
dialog.Text("You need to be level 15 or more.");
dialog.Option("Alright.", 255);
dialog.Send();
}
}
else
{
dialog.Text("I will not tell any of the " + Class + " secrets to another class, so, good bye.");
dialog.Option("Alright.", 255);
dialog.Send();
}
break;
}
}
break;
}
#endregion