当前位置: 首页>>代码示例>>C#>>正文


C# Player.getTemporaryAttribute方法代码示例

本文整理汇总了C#中Player.getTemporaryAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# Player.getTemporaryAttribute方法的具体用法?C# Player.getTemporaryAttribute怎么用?C# Player.getTemporaryAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Player的用法示例。


在下文中一共展示了Player.getTemporaryAttribute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: setAmountToZero

 public static void setAmountToZero(Player p)
 {
     if (p.getTemporaryAttribute("smeltingBar") != null) {
         BarToSmelt bar = (BarToSmelt) p.getTemporaryAttribute("smeltingBar");
         bar.setAmount(0);
     }
 }
开发者ID:slapglif,项目名称:runescape-server-csharp,代码行数:7,代码来源:Smelting.cs

示例2: completePotion

 public static void completePotion(Player p, int amount, bool newMix)
 {
     if (newMix && p.getTemporaryAttribute("completePotion") == null)
     {
         return;
     }
     if (!newMix && p.getTemporaryAttribute("herbloreItem") == null)
     {
         return;
     }
     if (newMix)
     {
         if (p.getTemporaryAttribute("completePotion") == null)
         {
             return;
         }
         int index = (int)p.getTemporaryAttribute("completePotion");
         p.setTemporaryAttribute("herbloreItem", new Potion(END_POTION[index], UNFINISHED[index], SECONDARY[index], POTION_LEVEL[index], POTION_XP[index], amount));
     }
     Potion item = (Potion)p.getTemporaryAttribute("herbloreItem");
     if (item == null || p == null || item.getAmount() <= 0)
     {
         resetAllHerbloreVariables(p);
         return;
     }
     if (!p.getInventory().hasItem(item.getSecondary()) || !p.getInventory().hasItem(item.getUnfinished()))
     {
         resetAllHerbloreVariables(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.HERBLORE) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Herblore level of " + item.getLevel() + " to make that potion.");
         resetAllHerbloreVariables(p);
         return;
     }
     string s = ItemData.forId(item.getFinished()).getName().Replace("(3)", "");
     if (p.getInventory().deleteItem(item.getUnfinished()) && p.getInventory().deleteItem(item.getSecondary()))
     {
         if (p.getInventory().addItem(item.getFinished()))
         {
             item.decreaseAmount();
             p.setLastAnimation(new Animation(MIX_ANIMATION));
             p.getSkills().addXp(Skills.SKILL.HERBLORE, item.getXp());
             p.getPackets().sendMessage("You add the ingredient into the murky vial, you have completed the potion.");
             p.getPackets().closeInterfaces();
         }
     }
     if (item.getAmount() >= 1)
     {
         Event completeMorePotionsEvent = new Event(750);
         completeMorePotionsEvent.setAction(() =>
         {
             completePotion(p, item.getAmount(), false);
             completeMorePotionsEvent.stop();
         });
         Server.registerEvent(completeMorePotionsEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:59,代码来源:Herblore.cs

示例3: fillingVial

        // TODO make this use an AreaEvent so itll work from a distance.
        /**
         * Will fill vials in a continuous motion from a water source.
         */
        public static bool fillingVial(Player p, Location loc)
        {
            if (!p.getInventory().hasItem(VIAL) || !p.getLocation().withinDistance(loc, 2))
            {
                return true;
            }
            if (p.getTemporaryAttribute("fillVialTimer") != null)
            {
                long lastFillTime = (int)p.getTemporaryAttribute("fillVialTimer");
                if (Environment.TickCount - lastFillTime < 600)
                {
                    return true;
                }
            }
            p.setTemporaryAttribute("fillingVials", true);
            p.setFaceLocation(loc);

            Event fillVialEvent = new Event(500);
            fillVialEvent.setAction(() =>
            {
                int amountFilled = 0;
                string s = amountFilled == 1 ? "vial" : "vials";
                if (p.getTemporaryAttribute("fillingVials") == null || !p.getLocation().withinDistance(loc, 2) || !p.getInventory().hasItem(229))
                {
                    p.setLastAnimation(new Animation(65535));
                    if (amountFilled > 0)
                    {
                        p.getPackets().sendMessage("You fill up the " + s + " with water.");
                    }
                    fillVialEvent.stop();
                    return;
                }
                if (p.getInventory().replaceSingleItem(VIAL, VIAL_OF_WATER))
                {
                    p.setLastAnimation(new Animation(832));
                    amountFilled++;
                    p.setTemporaryAttribute("fillVialTimer", Environment.TickCount);
                }
                else
                {
                    if (amountFilled > 0)
                    {
                        p.setLastAnimation(new Animation(65535));
                        p.getPackets().sendMessage("You fill up the " + s + " with water.");
                    }
                    fillVialEvent.stop();
                }
            });
            Server.registerEvent(fillVialEvent);
            return true;
        }
开发者ID:ramatronics,项目名称:rsps,代码行数:55,代码来源:FillVial.cs

示例4: cutGem

 public static void cutGem(Player p, int index, int amount, bool newCut)
 {
     index -= 50;
     if (newCut)
     {
         p.setTemporaryAttribute("craftItem", new CraftItem(5, index, amount, (double)GEMS[index][3], (int)GEMS[index][1], (string)GEMS[index][4], (int)GEMS[index][2]));
     }
     CraftItem item = (CraftItem)p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 5)
     {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     if (!p.getInventory().hasItem(CHISEL))
     {
         p.getPackets().sendMessage("You cannot cut gems without a chisel.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem((int)GEMS[item.getCraftItem()][0]))
     {
         if (newCut)
         {
             p.getPackets().sendMessage("You have no " + item.getMessage() + " to cut.");
         }
         else
         {
             p.getPackets().sendMessage("You have no more " + item.getMessage() + "'s to cut.");
         }
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to cut that gem.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getInventory().deleteItem((int)GEMS[item.getCraftItem()][0]))
     {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
         p.setLastAnimation(new Animation((int)GEMS[item.getCraftItem()][5]));
         p.getPackets().sendMessage("You cut the " + item.getMessage() + ".");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1)
     {
         Event cutMoreGemEvent = new Event(1500);
         cutMoreGemEvent.setAction(() =>
         {
             cutGem(p, -1, -1, false);
             cutMoreGemEvent.stop();
         });
         Server.registerEvent(cutMoreGemEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:58,代码来源:Jewellery.cs

示例5: craftClay

 public static void craftClay(Player p, int amount, int craftType, int craftItem, bool newCraft)
 {
     if (newCraft)
     {
         if ((craftType != 1 && craftType != 2) || craftItem < 0 || craftItem > 4)
         {
             return;
         }
         int index = craftItem;
         int endItem = craftType == 1 ? 0 : 1;
         int xp = craftType == 1 ? 3 : 4;
         p.setTemporaryAttribute("craftItem", new CraftItem(craftType, craftItem, amount, (double)CLAY_ITEMS[index][xp], (int)CLAY_ITEMS[index][endItem], (string)CLAY_ITEMS[index][5], (int)CLAY_ITEMS[index][2]));
     }
     CraftItem item = (CraftItem)p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0)
     {
         Crafting.resetCrafting(p);
         return;
     }
     int neededItem = item.getCraftType() == 1 ? CLAY : (int)CLAY_ITEMS[item.getCraftItem()][0];
     string s = item.getCraftType() == 1 ? "You mould the clay into a " + item.getMessage() : "You bake the " + item.getMessage() + " in the oven";
     string s1 = item.getCraftType() == 1 ? "You need some soft clay to mould a " + item.getMessage() : "You need a pre-made " + item.getMessage() + " to put in the oven";
     int animation = item.getCraftType() == 1 ? 883 : 899;
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to make a " + item.getMessage() + ".");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(neededItem))
     {
         p.getPackets().sendMessage(s1 + ".");
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     if (p.getInventory().deleteItem(neededItem))
     {
         if (p.getInventory().addItem(item.getFinishedItem()))
         {
             p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
             p.getPackets().sendMessage(s + ".");
             p.setLastAnimation(new Animation(animation));
         }
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1)
     {
         Event craftMoreClayEvent = new Event(1500);
         craftMoreClayEvent.setAction(() =>
         {
             craftClay(p, -1, -1, -1, false);
             craftMoreClayEvent.stop();
         });
         Server.registerEvent(craftMoreClayEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:57,代码来源:Clay.cs

示例6: craftDragonHide

 public static void craftDragonHide(Player p, int amount, int itemIndex, int leatherType, bool newCraft)
 {
     if (newCraft) {
         itemIndex = leatherType != 0 ? itemIndex += leatherType : itemIndex;
         p.setTemporaryAttribute("craftItem", new CraftItem(leatherType, itemIndex, amount, (double) LEATHER_ITEMS[itemIndex][2], (int) LEATHER_ITEMS[itemIndex][0], (string) LEATHER_ITEMS[itemIndex][4], (int) LEATHER_ITEMS[itemIndex][1]));
     }
     CraftItem item = (CraftItem) p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0) {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     int index = item.getCraftItem();
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel()) {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to craft that item.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItemAmount(TANNED_HIDE[item.getCraftType()], (int) LEATHER_ITEMS[index][3])) {
         p.getPackets().sendMessage("You need " + (int) LEATHER_ITEMS[index][3] + " dragonhide to craft that.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(NEEDLE)) {
         p.getPackets().sendMessage("You need a needle if you wish to craft leather.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItemAmount(THREAD, (int)LEATHER_ITEMS[index][3])) {
         p.getPackets().sendMessage("You need " + (int)LEATHER_ITEMS[index][3] + " thread to craft that.");
         Crafting.resetCrafting(p);
         return;
     }
     string s = index < 4 ? "a" : "a pair of";
     for (int j = 0; j < (int) LEATHER_ITEMS[index][3]; j++) {
         if (!p.getInventory().deleteItem(TANNED_HIDE[item.getCraftType()])) {
             return;
         }
     }
     p.getInventory().deleteItem(THREAD, (int) LEATHER_ITEMS[index][3]);
     p.getInventory().addItem(item.getFinishedItem());
     p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
     p.setLastAnimation(new Animation(1249));
     p.getPackets().sendMessage("You craft " + s + " " + item.getMessage() + ".");
     item.decreaseAmount();
     if (item.getAmount() >= 1) {
         Event craftMoreDragonHide = new Event(1500);
         craftMoreDragonHide.setAction(() => {
                 craftDragonHide(p, -1, -1, -1, false);
                 craftMoreDragonHide.stop();
         });
         Server.registerEvent(craftMoreDragonHide);
     }
 }
开发者ID:Krill156,项目名称:SharpEMU,代码行数:54,代码来源:Leather.cs

示例7: newSilverItem

 public static void newSilverItem(Player p, int amount, int index, bool newCraft)
 {
     index -= 120;
     if (newCraft)
     {
         p.setTemporaryAttribute("craftItem", new CraftItem(3, index, amount, (double)SILVER_ITEMS[index][3], (int)SILVER_ITEMS[index][0], (string)SILVER_ITEMS[index][4], (int)SILVER_ITEMS[index][2]));
     }
     CraftItem item = (CraftItem)p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 3)
     {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     string s = item.getCraftItem() == 0 ? "an" : "a";
     if (!p.getInventory().hasItem((int)SILVER_ITEMS[item.getCraftItem()][1]))
     {
         p.getPackets().sendMessage("You need " + s + " " + item.getMessage() + " mould to make that.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(SILVER_BAR))
     {
         p.getPackets().sendMessage("You don't have a Silver bar.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to smelt that.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getInventory().deleteItem(SILVER_BAR))
     {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
         p.setLastAnimation(new Animation(3243));
         p.getPackets().sendMessage("You smelt the Silver bar in to " + s + " " + item.getMessage() + ".");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1)
     {
         Event makeMoreSilverItemEvent = new Event(1500);
         makeMoreSilverItemEvent.setAction(() =>
         {
             newSilverItem(p, -1, -1, false);
             makeMoreSilverItemEvent.stop();
         });
         Server.registerEvent(makeMoreSilverItemEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:52,代码来源:Silver.cs

示例8: craftGlass

 public static void craftGlass(Player p, int amount, int index, bool newCraft)
 {
     if (newCraft)
     {
         p.setTemporaryAttribute("craftItem", new CraftItem(3, index, amount, (double)GLASS_ITEMS[index][2], (int)GLASS_ITEMS[index][0], (string)GLASS_ITEMS[index][3], (int)GLASS_ITEMS[index][1]));
     }
     CraftItem item = (CraftItem)p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 3)
     {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     if (!p.getInventory().hasItem(MOLTEN_GLASS))
     {
         p.getPackets().sendMessage("You have no molten glass.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(GLASSBLOWING_PIPE))
     {
         p.getPackets().sendMessage("You need a glassblowing pipe if you wish to make a glass item.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to craft that item.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getInventory().deleteItem(MOLTEN_GLASS))
     {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
         p.setLastAnimation(new Animation(884));
         p.getPackets().sendMessage("You blow through the pipe, shaping the molten glass into a " + item.getMessage() + ".");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1)
     {
         Event craftMoreGlassEvent = new Event(1500);
         craftMoreGlassEvent.setAction(() =>
         {
             craftGlass(p, -1, -1, false);
             craftMoreGlassEvent.stop();
         });
         Server.registerEvent(craftMoreGlassEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:50,代码来源:Glass.cs

示例9: craftNormalLeather

 public static void craftNormalLeather(Player p, int index, int amount, bool newCraft)
 {
     index -= 28;
     if (newCraft) {
         p.setTemporaryAttribute("craftItem", new CraftItem(4, index, amount, (double) NORMAL_LEATHER[index][2], (int) NORMAL_LEATHER[index][0], (string) NORMAL_LEATHER[index][3], (int) NORMAL_LEATHER[index][1]));
     }
     CraftItem item = (CraftItem) p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 4 || item.getCraftItem() < 0) {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     if (!p.getInventory().hasItem(TANNED_HIDE[4])) {
         p.getPackets().sendMessage("You have no Leather.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(NEEDLE)) {
         p.getPackets().sendMessage("You need a needle if you wish to craft leather.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(THREAD)) {
         p.getPackets().sendMessage("You have no thread.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel()) {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to craft that item.");
         Crafting.resetCrafting(p);
         return;
     }
     int i = item.getCraftItem();
     string s = i == 0 || i == 5 || i == 6 ? "a" : "a pair of";
     if (p.getInventory().deleteItem(THREAD) && p.getInventory().deleteItem(TANNED_HIDE[4])) {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
         p.setLastAnimation(new Animation(1249));
         p.getPackets().sendMessage("You make " + s + " " + item.getMessage() + ".");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1) {
         Event craftMoreNormalLeather = new Event(1500);
         craftMoreNormalLeather.setAction(() => {
             craftNormalLeather(p, -1, -1, false);
             craftMoreNormalLeather.stop();
         });
         Server.registerEvent(craftMoreNormalLeather);
     }
 }
开发者ID:Krill156,项目名称:SharpEMU,代码行数:50,代码来源:Leather.cs

示例10: showOptions

 public static bool showOptions(Player p, int item)
 {
     if (item != 12622 || p.getTemporaryAttribute("unmovable") != null) {
         return false;
     }
     p.getPackets().softCloseInterfaces();
     p.getPackets().sendChatboxInterface2(232);
     p.getPackets().modifyText("Allotments", 232, 2);
     p.getPackets().modifyText("Trees", 232, 3);
     p.getPackets().modifyText("Fruit trees", 232, 4);
     p.getPackets().modifyText("Exit", 232, 5);
     p.setTemporaryAttribute("dialogue", 450);
     return true;
 }
开发者ID:slapglif,项目名称:runescape-server-csharp,代码行数:14,代码来源:FarmingAmulet.cs

示例11: craftSpinning

 public static void craftSpinning(Player p, int amount, int index, bool newCraft)
 {
     if (newCraft)
     {
         p.setTemporaryAttribute("craftItem", new CraftItem(6, index, amount, (double)SPINNING_ITEMS[index][3], (int)SPINNING_ITEMS[index][0], (string)SPINNING_ITEMS[index][4], (int)SPINNING_ITEMS[index][2]));
     }
     CraftItem item = (CraftItem)p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 6)
     {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     int i = item.getCraftItem();
     if (!p.getInventory().hasItem((int)SPINNING_ITEMS[i][1]))
     {
         p.getPackets().sendMessage("You have no " + item.getMessage() + ".");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getSkills().getGreaterLevel(Skills.SKILL.CRAFTING) < item.getLevel())
     {
         p.getPackets().sendMessage("You need a Crafting level of " + item.getLevel() + " to spin that.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getInventory().deleteItem((int)SPINNING_ITEMS[i][1]))
     {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, item.getXp());
         p.setLastAnimation(new Animation(894));
         p.getPackets().sendMessage("You spin the " + item.getMessage() + " into a " + SPIN_FINISH[i] + ".");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1)
     {
         Event craftMoreSpinningEvent = new Event(750);
         craftMoreSpinningEvent.setAction(() =>
         {
             craftSpinning(p, -1, -1, false);
             craftMoreSpinningEvent.stop();
         });
         Server.registerEvent(craftMoreSpinningEvent);
     }
 }
开发者ID:ramatronics,项目名称:rsps,代码行数:45,代码来源:Spinning.cs

示例12: canMakeFire

 private static bool canMakeFire(Player p, int logIndex, bool colouredLog)
 {
     if (p.getTemporaryAttribute("unmovable") != null) {
         return false;
     }
     if (Server.getGlobalObjects().fireExists(p.getLocation())) {
         p.getPackets().sendMessage("You cannot light a fire here.");
         return false;
     }
     if ((p.getSkills().getGreaterLevel(Skills.SKILL.FIREMAKING) < FIRE_LEVEL[logIndex]) && !colouredLog) {
         p.getPackets().sendMessage("You need a Firemaking level of " + FIRE_LEVEL[logIndex] + " to light this log.");
         return false;
     }
     if (!p.getInventory().hasItem(TINDERBOX)) {
         p.getPackets().sendMessage("You need a tinderbox if you intend on actually make a fire!");
         return false;
     }
     return true;
 }
开发者ID:slapglif,项目名称:runescape-server-csharp,代码行数:19,代码来源:Firemaking.cs

示例13: levelUp

        public static void levelUp(Player player, SKILL skill)
        {
            int skillIndex = Convert.ToInt32(skill);
            String s = "<br><br><br>";
            String s1 = "<br><br><br><br>";
            if (player.getTemporaryAttribute("teleporting") == null)
            {
                player.setLastGraphics(new Graphics(199, 0, 100));
            }

            int skillFlashFlags = (int)(player.getTemporaryAttribute("skillFlashFlags") == null ? 0 : (int)player.getTemporaryAttribute("skillFlashFlags"));
            skillFlashFlags |= SKILL_FLASH_BITMASKS[skillIndex];
            player.setTemporaryAttribute("skillFlashFlags", skillFlashFlags);

            player.getPackets().sendMessage("You've just advanced a " + SKILL_NAME[skillIndex] + " level! You have reached level " + player.getSkills().getMaxLevel(skillIndex) + ".");
            player.getPackets().modifyText(s + "Congratulations, you have just advanced a " + SKILL_NAME[skillIndex] + " level!", 740, 0);
            player.getPackets().modifyText(s1 + "You have now reached level " + player.getSkills().getMaxLevel(skillIndex) + ".", 740, 1);
            player.getPackets().modifyText("", 740, 2);
            player.getPackets().sendConfig(1179, SKILL_ICON_BITMASKS[skillIndex] | skillFlashFlags); //start flashing appropriate skill icons
            player.getPackets().sendChatboxInterface2(740);
            player.getUpdateFlags().setAppearanceUpdateRequired(true);
        }
开发者ID:Krill156,项目名称:SharpEMU,代码行数:22,代码来源:Skills.cs

示例14: smeltOre

 public static void smeltOre(Player p, int buttonId, bool newSmelt, int amount)
 {
     p.getPackets().closeInterfaces();
     int index = -1;
     if (!newSmelt && p.getTemporaryAttribute("smeltingBar") == null) {
         return;
     }
     if (newSmelt) {
         resetSmelting(p);
         index = getBarToMake(buttonId);
         if (index == -1) {
             return;
         }
         if (amount == -1) {
             amount =  getAmount(buttonId);
         }
         if (amount == -2) {
             p.getPackets().displayEnterAmount();
             p.setTemporaryAttribute("interfaceVariable", new EnterVariable(311, buttonId));
             return;
         }
         p.setTemporaryAttribute("smeltingBar", new BarToSmelt(index, BARS[index], SMELT_LEVELS[index], SMELT_XP[index], amount, SMELT_ORES[index], SMELT_ORE_AMT[index], BAR_NAMES[index]));
     }
     BarToSmelt bar = (BarToSmelt) p.getTemporaryAttribute("smeltingBar");
     if (!canSmelt(p, bar)) {
         resetSmelting(p);
         return;
     }
     for (int i = 0; i < bar.getOre().Length; i++) {
         if (bar.getOreAmount()[i] != 0) {
             for (int j = 0; j < bar.getOreAmount()[i]; j++) {
                 if (!p.getInventory().deleteItem(bar.getOre()[i], 1)) {
                     resetSmelting(p);
                     return;
                 }
             }
         }
     }
     string s = bar.getOre()[1] == 0 ? "ore" : "ore and coal";
     p.getPackets().sendMessage("You place the " + bar.getName().ToLower() + " " + s + " into the furnace..");
     p.setLastAnimation(new Animation(3243));
     Event SmeltBarEvent = new Event(1800);
     SmeltBarEvent.setAction(() => {
         SmeltBarEvent.stop();
         if (p.getTemporaryAttribute("smeltingBar") == null) {
             resetSmelting(p);
             return;
         }
         BarToSmelt myBar = (BarToSmelt) p.getTemporaryAttribute("smeltingBar");
         if (!bar.Equals(myBar)) {
             resetSmelting(p);
             return;
         }
         bool dropIron = false;
         if (bar.getIndex() == 2) {
             if (!wearingForgingRing(p)) {
                 if (misc.random(1) == 0) {
                     p.getPackets().sendMessage("You accidentally drop the iron ore deep into the furnace..");
                     dropIron = true;
                 }
             } else {
                 lowerForgingRing(p);
             }
         }
         if (!dropIron) {
             string s1 = bar.getIndex() == 2 || bar.getIndex() == 8 ? "an" : "a";
             p.getPackets().sendMessage("You retrieve " + s1 + " " + bar.getName().ToLower() + " bar from the furnace..");
             p.getInventory().addItem(bar.getBarId());
             p.getSkills().addXp(Skills.SKILL.SMITHING, bar.getXp());
         }
         bar.decreaseAmount();
         if (bar.getAmount() >= 1) {
             smeltOre(p, -1, false, 1);
         }
         if (bar.getAmount() <= 0) {
             resetSmelting(p);
         }
     });
     Server.registerEvent(SmeltBarEvent);
 }
开发者ID:slapglif,项目名称:runescape-server-csharp,代码行数:80,代码来源:Smelting.cs

示例15: stringAmulet

 public static void stringAmulet(Player p, int index, int amount, bool newString)
 {
     index -= 100;
     if (newString) {
         p.setTemporaryAttribute("craftItem", new CraftItem(4, index, amount, STRINGING_XP, STRUNG_AMULETS[index][0], (string) GEMS[index][4] + " amulet", 1));
     }
     CraftItem item = (CraftItem) p.getTemporaryAttribute("craftItem");
     if (item == null || p == null || item.getAmount() <= 0 || item.getCraftType() != 4) {
         Crafting.resetCrafting(p);
         return;
     }
     p.getPackets().closeInterfaces();
     if (!p.getInventory().hasItem(BALL_OF_WOOL)) {
         p.getPackets().sendMessage("You do not have a Ball of wool.");
         Crafting.resetCrafting(p);
         return;
     }
     if (!p.getInventory().hasItem(STRUNG_AMULETS[item.getCraftItem()][1])) {
         string s = item.getCraftItem() == 1 || item.getCraftItem() == 5 ? "an" : "a";
         p.getPackets().sendMessage("You don't have " + s + " " + GEMS[item.getCraftItem()][4] + " unstrung amulet to string.");
         Crafting.resetCrafting(p);
         return;
     }
     if (p.getInventory().deleteItem(STRUNG_AMULETS[item.getCraftItem()][1]) && p.getInventory().deleteItem(BALL_OF_WOOL)) {
         p.getInventory().addItem(item.getFinishedItem());
         p.getSkills().addXp(Skills.SKILL.CRAFTING, STRINGING_XP);
         p.getPackets().sendMessage("You add a string to the amulet.");
     }
     item.decreaseAmount();
     if (item.getAmount() >= 1) {
         Event stringMoreAmuletEvent = new Event(1000);
         stringMoreAmuletEvent.setAction(() => {
                 stringAmulet(p, -1, -1, false);
                 stringMoreAmuletEvent.stop();
         });
         Server.registerEvent(stringMoreAmuletEvent);
     }
 }
开发者ID:Krill156,项目名称:SharpEMU,代码行数:38,代码来源:Jewellery.cs


注:本文中的Player.getTemporaryAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。