I'm looking for a person who will help me add Npc fast up sp,perfection
Quote:
Use the loop
for (int i = 0; i < 10; i++)
{
Your functions
}
in this example that loop will be repeated 10 times
You both don't realy expect him to implement it himself right? By looking at his previous questions you can easily tell that he's actually looking for someone who tells him what to do and that step by step. I mean don't get me wrong, it's nice that you try to tell him to make a use of basic c#(Actually basic programming), but I don't think he's here to learn c# nor the logic of programming itself.Quote:
or just use
do
{
the funktion
}
while(true);
to understand for you @[Only registered and activated users can see links. Click Here To Register...]
the Method from Shitoshi will repeat it 10 times and stop ... in my Method it repeats till he have no more items or something which isent enough to do
basically you can use both methods
Shitoshi's method just repeat it 10 times
mine method just repeat until the character have no more items to up or perfect.
case 19414:
//up sp
ItemInstance specialistInstance = Session.Character.Inventory.LoadBySlotAndType((byte)EquipmentType.Sp, InventoryType.Wear);
if (specialistInstance != null)
{
if (specialistInstance.Upgrade >= 15)
{
return;
}
byte[] upfail = { 20, 25, 30, 40, 50, 60, 65, 70, 75, 80, 90, 93, 95, 97, 99 };
byte[] destroy = { 0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70 };
int[] goldprice = { 200000, 200000, 200000, 200000, 200000, 500000, 500000, 500000, 500000, 500000, 1000000, 1000000, 1000000, 1000000, 1000000 };
byte[] feather = { 3, 5, 8, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70 };
byte[] fullmoon = { 1, 3, 5, 7, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 };
byte[] soul = { 2, 4, 6, 8, 10, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5 };
const short featherVnum = 2282;
const short fullmoonVnum = 1030;
const short greenSoulVnum = 2283;
const short redSoulVnum = 2284;
const short blueSoulVnum = 2285;
const short dragonSkinVnum = 2511;
const short dragonBloodVnum = 2512;
const short dragonHeartVnum = 2513;
const short blueScrollVnum = 1363;
const short redScrollVnum = 1364;
int fallimento = 0;
short itemToRemove = 2283;
if (!Session.HasCurrentMapInstance)
{
return;
}
while (specialistInstance.Upgrade < 15)
{
if (Session.Character.Gold < goldprice[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("NOT_ENOUGH_MONEY"), 10));
break;
}
if (Session.Character.Inventory.CountItem(featherVnum) < feather[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(featherVnum).Name, feather[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(fullmoonVnum) < fullmoon[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(featherVnum).Name, fullmoon[specialistInstance.Upgrade])), 10));
break;
}
if (specialistInstance.Item.Morph <= 16)
{
if (specialistInstance.Upgrade < 5)
{
if (Session.Character.Inventory.CountItem(greenSoulVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(greenSoulVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(blueScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(blueScrollVnum).Name, 1)), 10));
break;
}
itemToRemove = greenSoulVnum;
Session.Character.Inventory.RemoveItemAmount(blueScrollVnum);
}
else if (specialistInstance.Upgrade < 10)
{
if (Session.Character.Inventory.CountItem(redSoulVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(redSoulVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(blueScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(blueScrollVnum).Name, 1)), 10));
break;
}
itemToRemove = redSoulVnum;
Session.Character.Inventory.RemoveItemAmount(blueScrollVnum);
}
else
{
if (Session.Character.Inventory.CountItem(blueSoulVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(blueSoulVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(redScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(redScrollVnum).Name, 1)), 10));
break;
}
itemToRemove = blueSoulVnum;
Session.Character.Inventory.RemoveItemAmount(redScrollVnum);
}
}
else
{
if (specialistInstance.Upgrade < 5)
{
if (Session.Character.Inventory.CountItem(dragonSkinVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(dragonSkinVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(blueScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(blueScrollVnum).Name, 1)), 10));
break;
}
Session.Character.Inventory.RemoveItemAmount(blueScrollVnum);
itemToRemove = dragonSkinVnum;
}
else if (specialistInstance.Upgrade < 10)
{
if (Session.Character.Inventory.CountItem(dragonBloodVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(dragonBloodVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(blueScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(blueScrollVnum).Name, 1)), 10));
break;
}
Session.Character.Inventory.RemoveItemAmount(blueScrollVnum);
itemToRemove = dragonBloodVnum;
}
else
{
if (Session.Character.Inventory.CountItem(dragonHeartVnum) < soul[specialistInstance.Upgrade])
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(dragonHeartVnum).Name, soul[specialistInstance.Upgrade])), 10));
break;
}
if (Session.Character.Inventory.CountItem(redScrollVnum) == 0)
{
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey(string.Format(Language.Instance.GetMessageFromKey("NOT_ENOUGH_ITEMS"), ServerManager.GetItem(redScrollVnum).Name, 1)), 10));
break;
}
Session.Character.Inventory.RemoveItemAmount(redScrollVnum);
itemToRemove = dragonHeartVnum;
}
}
Session.Character.Gold -= goldprice[specialistInstance.Upgrade];
Session.Character.Inventory.RemoveItemAmount(featherVnum, feather[specialistInstance.Upgrade]);
int rnd1 = ServerManager.RandomNumber();
if (rnd1 < upfail[specialistInstance.Upgrade])
{
int maxfail = 0;
switch (specialistInstance.Upgrade)
{
case 0:
case 1:
case 2:
case 3:
case 4:
maxfail = 5;
break;
case 5:
case 6:
case 7:
case 8:
case 9:
maxfail = 10;
break;
case 10:
maxfail = 15;
break;
case 11:
maxfail = 20;
break;
case 12:
maxfail = 40;
break;
case 13:
maxfail = 80;
break;
case 14:
maxfail = 150;
break;
}
if (specialistInstance.UpgradeFail > maxfail)
{
Session.Character.Inventory.RemoveItemAmount(itemToRemove, soul[specialistInstance.Upgrade]);
Session.Character.Inventory.RemoveItemAmount(fullmoonVnum, fullmoon[specialistInstance.Upgrade]);
Session.Character.Inventory.RemoveItemAmount(featherVnum, feather[specialistInstance.Upgrade]);
specialistInstance.Upgrade++;
if (specialistInstance.Upgrade > 8)
{
Session.Character.Family?.InsertFamilyLog(FamilyLogType.ItemUpgraded, Session.Character.Name, itemVNum: specialistInstance.ItemVNum, upgrade: specialistInstance.Upgrade);
}
Session.SendPacket(specialistInstance.GenerateInventoryAdd());
}
else
{
Session.Character.Inventory.RemoveItemAmount(itemToRemove, soul[specialistInstance.Upgrade]);
Session.Character.Inventory.RemoveItemAmount(featherVnum, fullmoon[specialistInstance.Upgrade]);
Session.Character.Inventory.RemoveItemAmount(featherVnum, feather[specialistInstance.Upgrade]);
fallimento++;
Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("UPGRADESP_FAILED"), 11));
Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("UPGRADESP_FAILED"), 0));
}
}
else
{
Session.Character.Inventory.RemoveItemAmount(itemToRemove, soul[specialistInstance.Upgrade]);
Session.Character.Inventory.RemoveItemAmount(fullmoonVnum, fullmoon[specialistInstance.Upgrade]);
specialistInstance.Upgrade++;
Session.SendPacket(specialistInstance.GenerateInventoryAdd());
}
Session.SendPacket(Session.Character.GenerateGold());
Session.SendPacket(Session.Character.GenerateEq());
}
Session.CurrentMapInstance.Broadcast(StaticPacketHelper.GenerateEff(UserType.Player, Session.Character.CharacterId, 3005), Session.Character.MapX, Session.Character.MapY);
Session.SendPacket(Session.Character.GenerateSay("-------------Upgrade stats-------------", 11));
Session.SendPacket(Session.Character.GenerateSay("Upgrade Sp: " + specialistInstance.Upgrade, 11));
Session.SendPacket(Session.Character.GenerateSay("Fails: " + fallimento, 11));
Session.SendPacket(Session.Character.GenerateSay("---------------------------------------", 11));
}
break;
case 19415:
{
try
{
ItemInstance specialistInstance1 = Session.Character.Inventory.LoadBySlotAndType((byte)EquipmentType.Sp, InventoryType.Wear);
if (specialistInstance1 != null)
{
short[] upsuccess = { 50, 40, 30, 20, 10 };
int[] goldprice = { 5000, 10000, 20000, 50000, 100000 };
byte[] stoneprice = { 1, 2, 3, 4, 5 };
short stonevnum;
byte upmode = 1;
short SpDamage = 0;
short SpDefence = 0;
short SpElement = 0;
short SpHP = 0;
short SpFire = 0;
short SpWater = 0;
short SpLight = 0;
short SpDark = 0;
short Fallimenti = 0;
short Successi = 0;
switch (specialistInstance1.Item.Morph)
{
case 2:
case 6:
case 9:
case 12:
stonevnum = 2514;
break;
case 3:
case 4:
case 14:
stonevnum = 2515;
break;
case 5:
case 11:
case 15:
stonevnum = 2516;
break;
case 10:
case 13:
case 7:
stonevnum = 2517;
break;
case 17:
case 18:
case 19:
stonevnum = 2518;
break;
case 20:
case 21:
case 22:
stonevnum = 2519;
break;
case 23:
case 24:
case 25:
stonevnum = 2520;
break;
case 26:
case 27:
case 28:
stonevnum = 2521;
break;
default:
return;
}
while (Session.Character.Inventory.CountItem(stonevnum) > 0)
{
if (specialistInstance1.SpStoneUpgrade > 99)
{
break;
}
if (specialistInstance1.SpStoneUpgrade > 80)
{
upmode = 5;
}
else if (specialistInstance1.SpStoneUpgrade > 60)
{
upmode = 4;
}
else if (specialistInstance1.SpStoneUpgrade > 40)
{
upmode = 3;
}
else if (specialistInstance1.SpStoneUpgrade > 20)
{
upmode = 2;
}
if (Session.Character.Gold < goldprice[upmode - 1])
{
break;
}
if (Session.Character.Inventory.CountItem(stonevnum) < stoneprice[upmode - 1])
{
break;
}
int rnd1 = ServerManager.RandomNumber();
if (rnd1 < upsuccess[upmode - 1])
{
byte type = (byte)ServerManager.RandomNumber(0, 16), count = 1;
if (upmode == 4)
{
count = 2;
}
if (upmode == 5)
{
count = (byte)ServerManager.RandomNumber(3, 6);
}
if (type < 3)
{
specialistInstance1.SpDamage += count;
SpDamage += count;
}
else if (type < 6)
{
specialistInstance1.SpDefence += count;
SpDefence += count;
}
else if (type < 9)
{
specialistInstance1.SpElement += count;
SpElement += count;
}
else if (type < 12)
{
specialistInstance1.SpHP += count;
SpHP += count;
}
else if (type == 12)
{
specialistInstance1.SpFire += count;
SpFire += count;
}
else if (type == 13)
{
specialistInstance1.SpWater += count;
SpWater += count;
}
else if (type == 14)
{
specialistInstance1.SpLight += count;
SpLight += count;
}
else if (type == 15)
{
specialistInstance1.SpDark += count;
SpDark += count;
}
specialistInstance1.SpStoneUpgrade++;
Successi++;
}
else
{
Fallimenti++;
}
Session.SendPacket(specialistInstance1.GenerateInventoryAdd());
Session.Character.Gold -= goldprice[upmode - 1];
Session.SendPacket(Session.Character.GenerateGold());
Session.Character.Inventory.RemoveItemAmount(stonevnum, stoneprice[upmode - 1]);
}
if (Successi > 0 || Fallimenti > 0)
{
Session.CurrentMapInstance.Broadcast(StaticPacketHelper.GenerateEff(UserType.Player, Session.Character.CharacterId, 3005), Session.Character.MapX, Session.Character.MapY);
Session.SendPacket(Session.Character.GenerateSay("---------------Perfection Status---------------", 11));
Session.SendPacket(Session.Character.GenerateSay("Succès: " + Successi, 11));
Session.SendPacket(Session.Character.GenerateSay("Fails: " + Fallimenti, 11));
Session.SendPacket(Session.Character.GenerateSay("Attaque: " + SpDamage, 11));
Session.SendPacket(Session.Character.GenerateSay("Défense: " + SpDefence, 11));
Session.SendPacket(Session.Character.GenerateSay("HP: " + SpHP, 11));
Session.SendPacket(Session.Character.GenerateSay("Element " + SpElement, 11));
Session.SendPacket(Session.Character.GenerateSay("Feu: " + SpFire, 11));
Session.SendPacket(Session.Character.GenerateSay("Eau: " + SpWater, 11));
Session.SendPacket(Session.Character.GenerateSay("Lumière: " + SpLight, 11));
Session.SendPacket(Session.Character.GenerateSay("Obscure: " + SpDark, 11));
Session.SendPacket(Session.Character.GenerateSay("-----------------------------------------------", 11));
}
else
{
Session.SendPacket(Session.Character.GenerateSay("NOT_ENOUGH_ITEM", 10));
}
}
else
{
Session.SendPacket(Session.Character.GenerateSay("WEAR_SP", 10));
}
}
catch (Exception ex)
{
Logger.Error(ex);
}
}
break;
case 25:
specialist = Session.Character.Inventory.LoadBySlotAndType(slot, inventoryType);
if (specialist != null)
{
if (specialist.Rare != -2)
{
if (specialist.Upgrade > 9)
{
Session.SendPacket(UserInterfaceHelper.GenerateMsg(
string.Format(Language.Instance.GetMessageFromKey("MUST_USE_ITEM"), ServerManager.GetItem(1364).Name), 0));
return;
}
if (specialist.Item.EquipmentSlot == EquipmentType.Sp)
{
var start = DateTime.Now;
while (DateTime.Now - start < TimeSpan.FromSeconds(2))
{
specialist.UpgradeSp(Session, UpgradeProtection.Protected);
}
}
}
else
{
Session.SendPacket(UserInterfaceHelper.GenerateMsg(
Language.Instance.GetMessageFromKey("CANT_UPGRADE_DESTROYED_SP"), 0));
}
}
break;
case 26:
specialist = Session.Character.Inventory.LoadBySlotAndType(slot, inventoryType);
if (specialist != null)
{
if (specialist.Rare != -2)
{
if (specialist.Upgrade <= 9)
{
Session.SendPacket(UserInterfaceHelper.GenerateMsg(
string.Format(Language.Instance.GetMessageFromKey("MUST_USE_ITEM"), ServerManager.GetItem(1363).Name), 0));
return;
}
if (specialist.Item.EquipmentSlot == EquipmentType.Sp)
{
var start = DateTime.Now;
while (DateTime.Now - start < TimeSpan.FromSeconds(2))
{
specialist.UpgradeSp(Session, UpgradeProtection.Protected);
}
}
}
else
{
Session.SendPacket(UserInterfaceHelper.GenerateMsg(
Language.Instance.GetMessageFromKey("CANT_UPGRADE_DESTROYED_SP"), 0));
}
}
break;