本文整理匯總了C#中RS2.Server.player.Player.setPoisonAmount方法的典型用法代碼示例。如果您正苦於以下問題:C# Player.setPoisonAmount方法的具體用法?C# Player.setPoisonAmount怎麽用?C# Player.setPoisonAmount使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類RS2.Server.player.Player
的用法示例。
在下文中一共展示了Player.setPoisonAmount方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: drinkPotion
private static void drinkPotion(Player p, int i, int j, int slot)
{
//TODO antipoisons/antifire
int lastPotion = -1;
int delay = 500;
long lastDrink = 0;
if (p.isDead() || p.getTemporaryAttribute("willDie") != null)
{
return;
}
if (p.getDuel() != null)
{
if (p.getDuel().ruleEnabled(DuelSession.RULE.NO_DRINKS))
{
p.getPackets().sendMessage("Drinks have been disabled for this duel!");
return;
}
}
if (p.getTemporaryAttribute("lastDrankPotion") != null)
{
lastPotion = (int)p.getTemporaryAttribute("lastDrankPotion");
}
if (p.getTemporaryAttribute("drinkPotionTimer") != null)
{
lastDrink = (int)p.getTemporaryAttribute("drinkPotionTimer");
}
int time = (j == lastPotion) ? 1000 : 500;
if (Environment.TickCount - lastDrink < time)
{
return;
}
p.getPackets().closeInterfaces();
p.setTemporaryAttribute("drinkPotionTimer", Environment.TickCount);
p.setTemporaryAttribute("lastDrankPotion", j);
p.setTarget(null);
p.resetCombatTurns();
p.setEntityFocus(65535);
p.removeTemporaryAttribute("autoCasting");
Event drinkPotionEvent = new Event(delay);
drinkPotionEvent.setAction(() =>
{
drinkPotionEvent.stop();
if (p.isDead() || p.getSkills().getCurLevel(Skills.SKILL.HITPOINTS) <= 0)
{
return;
}
int item = i != 0 && POTIONS[i - 1][j] != -1 ? POTIONS[i - 1][j] : 229;
if (!p.getInventory().replaceItemSlot(POTIONS[i][j], item, slot))
{
return;
}
string drinkPotion = ItemData.forId(POTIONS[0][j]).getName().Replace("(", "").Replace(")", "").Replace("3", "").Replace("2", "").Replace("1", "").ToLower();
p.getPackets().sendMessage("You drink some of your " + drinkPotion + ".");
p.getPackets().sendMessage("You have " + (i == 0 ? "no" : i.ToString()) + " doses of potion left.");
switch (j)
{
case 0: //Attack potion [+3 and 10% of max attack]
statBoost(p, Skills.SKILL.ATTACK, 0.10, 3, false);
break;
case 1: //Antipoison potion
p.setPoisonAmount(0);
break;
case 2: //Strength potion [+3 and 10% of max strength]
statBoost(p, Skills.SKILL.STRENGTH, 0.10, 3, false);
break;
case 3: //Restore potion [restores randomly between 10-39 points]
restorePotion(p, Skills.SKILL.DEFENCE, 10, 39);
restorePotion(p, Skills.SKILL.ATTACK, 10, 39);
restorePotion(p, Skills.SKILL.STRENGTH, 10, 39);
restorePotion(p, Skills.SKILL.RANGE, 10, 39);
restorePotion(p, Skills.SKILL.HITPOINTS, 10, 39);
break;
case 4: //Energy potion [restores 20% energy]
double newEnergy = p.getRunEnergy() * 0.20;
p.setRunEnergy(((p.getRunEnergy() + (int)newEnergy >= 100) ? 100 : (p.getRunEnergy() + (int)newEnergy)));
break;
case 5: //Defence potion [Should be +3 and 10% of max defence]
statBoost(p, Skills.SKILL.DEFENCE, 0.10, 3, false);
break;
case 6: //Agility potion [restores 2 or 3 agility points]
int newAgility = Misc.random(2, 3) + p.getSkills().getCurLevel(Skills.SKILL.AGILITY);
if (newAgility < p.getSkills().getMaxLevel(Skills.SKILL.AGILITY))
p.getSkills().setCurLevel(Skills.SKILL.AGILITY, newAgility);
break;
case 7: //Combat potion [Should be 10% of attack+strength and +3 to each].
statBoost(p, Skills.SKILL.ATTACK, 0.10, 3, false);
statBoost(p, Skills.SKILL.STRENGTH, 0.10, 3, false);
break;
case 8: //Prayer potion, [heals 7-31, formula = 7+floor(prayerlevel/4)]
int newPrayer = 7 + (int)Math.Floor((double)(p.getSkills().getMaxLevel(Skills.SKILL.PRAYER) / 4)) + p.getSkills().getCurLevel(Skills.SKILL.PRAYER);
if (newPrayer < p.getSkills().getCurLevel(Skills.SKILL.PRAYER))
//.........這裏部分代碼省略.........
示例2: resetVariables
private void resetVariables(Player p)
{
p.setSkullCycles(0);
p.getSpecialAttack().resetSpecial();
p.setLastkiller(null);
p.setDead(false);
p.setEntityFocus(65535);
p.setPoisonAmount(0);
p.clearKillersHits();
p.setLastVengeanceTime(0);
p.setVengeance(false);
p.removeTemporaryAttribute("willDie");
p.setFrozen(false);
p.removeTemporaryAttribute("unmovable");
p.setAntifireCycles(0);
p.setSuperAntipoisonCycles(0);
p.setTeleblockTime(0);
p.removeTemporaryAttribute("teleblocked");
p.setTarget(null);
p.setAttacker(null);
foreach (Skills.SKILL skill in Enum.GetValues(typeof(Skills.SKILL)))
p.getSkills().setCurLevel(skill, p.getSkills().getMaxLevel(skill));
p.getPackets().sendSkillLevels();
Prayer.deactivateAllPrayers(p);
if (p.getTemporaryAttribute("cantDoAnything") != null)
{
p.getAppearance().setInvisible(false);
p.getUpdateFlags().setAppearanceUpdateRequired(true);
p.removeTemporaryAttribute("cantDoAnything");
p.removeTemporaryAttribute("unmovable");
teleportToWaitingRoom(p, false);
p.getPackets().closeInterfaces();
p.getPackets().setMinimapStatus(0);
p.getPackets().clearMapFlag();
}
}