本文整理匯總了C#中RS2.Server.player.Player.setEntityFocus方法的典型用法代碼示例。如果您正苦於以下問題:C# Player.setEntityFocus方法的具體用法?C# Player.setEntityFocus怎麽用?C# Player.setEntityFocus使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類RS2.Server.player.Player
的用法示例。
在下文中一共展示了Player.setEntityFocus方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: interactWithAubury
public static void interactWithAubury(Player p, Npc n, int option)
{
p.setEntityFocus(n.getClientIndex());
AreaEvent interactWithAuburyAreaEvent = new AreaEvent(p, n.getLocation().getX() - 1, n.getLocation().getY() - 1, n.getLocation().getX() + 1, n.getLocation().getY() + 1);
interactWithAuburyAreaEvent.setAction(() =>
{
n.setFaceLocation(p.getLocation());
p.setFaceLocation(n.getLocation());
p.setEntityFocus(65535);
switch (option)
{
case 1: // talk to
break;
case 2: // trade
p.setShopSession(new ShopSession(p, 3));
break;
case 3: // teleport
RuneCraft.teleportToEssMine(p, n);
break;
}
});
Server.registerCoordinateEvent(interactWithAuburyAreaEvent);
}
示例2: interactWithAliMorissaae
public static void interactWithAliMorissaae(Player p, Npc n)
{
p.setEntityFocus(n.getClientIndex());
AreaEvent interactWithAliMorissaaeAreaEvent = new AreaEvent(p, n.getLocation().getX() - 1, n.getLocation().getY() - 1, n.getLocation().getX() + 1, n.getLocation().getY() + 1);
interactWithAliMorissaaeAreaEvent.setAction(() =>
{
n.setFaceLocation(p.getLocation());
p.setFaceLocation(n.getLocation());
p.setEntityFocus(65535);
showAliDialogue(p, 205);
});
Server.registerCoordinateEvent(interactWithAliMorissaaeAreaEvent);
}
示例3: dialogue
public static bool dialogue(Player p, Npc npc, bool rightClickPay)
{
if ((npc.getId() != 1055 && npc.getId() != 437) || (rightClickPay && npc.getId() != 437))
{
return false;
}
p.setEntityFocus(npc.getClientIndex());
AreaEvent dialogueAreaEvent = new AreaEvent(p, npc.getLocation().getX() - 1, npc.getLocation().getY() - 1, npc.getLocation().getX() + 1, npc.getLocation().getY() + 1);
dialogueAreaEvent.setAction(() =>
{
npc.setFaceLocation(p.getLocation());
int status = npc.getId() == 1055 ? 43 : 1;
if (rightClickPay)
{
if (!p.getInventory().hasItemAmount(995, AGILITY_ARENA_PRICE))
{
p.getPackets().sendMessage("You don't have enough money to pay the entrance fee.");
return;
}
status = 29;
}
doDialogue(p, status);
});
Server.registerCoordinateEvent(dialogueAreaEvent);
return true;
}
示例4: interactTzhaarNPC
public static bool interactTzhaarNPC(Player p, Npc n, int option)
{
if (n.getId() != 2622 && n.getId() != 2620 && n.getId() != 2623 && n.getId() != 2619 && n.getId() != 2617 && n.getId() != 2618)
{
return false;
}
p.setEntityFocus(n.getClientIndex());
int npcX = n.getLocation().getX();
int npcY = n.getLocation().getY();
AreaEvent interactTzhaarNpcAreaEvent = new AreaEvent(p, npcX - 1, npcY - 1, npcX + 1, npcY + 1);
interactTzhaarNpcAreaEvent.setAction(() =>
{
p.setFaceLocation(n.getLocation());
p.setEntityFocus(65535);
switch (n.getId())
{
case 2619: // Bankers
if (option == 1)
{ // Talk
}
else if (option == 2)
{ // Bank
p.getBank().openBank();
}
else if (option == 3)
{ // Collect
}
break;
//TODO tzhaar stores
case 2622: // Ore shop
if (option == 1)
{ // Speak
}
else if (option == 2)
{ // Trade
p.setShopSession(new ShopSession(p, 3));
}
break;
}
});
Server.registerCoordinateEvent(interactTzhaarNpcAreaEvent);
return true;
}
示例5: interactWithBoatNPC
public static bool interactWithBoatNPC(Player p, Npc n)
{
int id = n.getId();
if (id != 4540 && id != 1304 && id != 2436 && id != 3781 && id != 1361 && id != 4962)
{
return false;
}
p.setEntityFocus(n.getClientIndex());
AreaEvent interactWithBoatNPCAreaEvent = new AreaEvent(p, n.getLocation().getX() - 1, n.getLocation().getY() - 1, n.getLocation().getX() + 1, n.getLocation().getY() + 1);
interactWithBoatNPCAreaEvent.setAction(() =>
{
n.setFaceLocation(p.getLocation());
p.setFaceLocation(n.getLocation());
p.setEntityFocus(65535);
switch (n.getId())
{
case 4540: // Home boat
showBentleyDialogue(p, 240);
break;
case 1304: // Canifis sailor
showCanifisSailorDialogue(p, 280);
break;
case 2436: // Waterbirth isle
showJarvaldDialogue(p, 300);
break;
case 3781: // Pest control squire
showSquireDialogue(p, 340);
break;
case 1361: // Warrior guild
showArnorDialogue(p, 370);
break;
case 4962: // fremmenik shore
showCaptainBarnabyDialogue(p, 410);
break;
}
});
Server.registerCoordinateEvent(interactWithBoatNPCAreaEvent);
return true;
}
示例6: eatFood
private static void eatFood(Player p, int i, int j, int slot)
{
//delay at which you eat food 0.5 seconds (half a second per eat).
int delay = 500;
//If you are dead or yourHp is zero (this should be enough), also if variable is set to die from next attack
if (p.isDead() || p.getHp() <= 0 || p.getTemporaryAttribute("willDie") != null)
return;
//Last time you ate timer was previously set.
if (p.getTemporaryAttribute("eatFoodTimer") != null)
{
//Check if the timer has passed the time of 1.2 seconds
if (Environment.TickCount - (int)p.getTemporaryAttribute("eatFoodTimer") < 1200)
{
return;
}
}
//if you are in a duel
if (p.getDuel() != null)
{
//dueling with No Food rule enabled
if (p.getDuel().ruleEnabled(DuelSession.RULE.NO_FOOD))
{
p.getPackets().sendMessage("Food has been disabled for this duel!");
return;
}
}
//Set timer right now because you are eating some food.
p.setTemporaryAttribute("eatFoodTimer", Environment.TickCount);
//while you are eating the target you are attacking gets reset.
p.setTarget(null);
p.resetCombatTurns();
p.setEntityFocus(65535);
p.getPackets().closeInterfaces();
p.removeTemporaryAttribute("autoCasting");
//start eating the food at delay which is 0.5 of a second / half a second.
Event eatFoodEvent = new Event(delay);
eatFoodEvent.setAction(() =>
{
//make the food eating event stop after this time.
eatFoodEvent.stop();
//if you are dead or your hp is zero aka dead.
if (p.isDead() || p.getHp() <= 0)
{
return;
}
int newHealth = p.getSkills().getCurLevel(Skills.SKILL.HITPOINTS) + FOOD_HEAL[j];
int item = i != 2 && FOOD[i + 1][j] != -1 ? FOOD[i + 1][j] : -1;
if (!p.getInventory().replaceItemSlot(FOOD[i][j], item, slot))
{
return;
}
p.getPackets().sendMessage("You eat the " + ItemData.forId(FOOD[i][j]).getName().ToLower() + ".");
p.getSkills().setCurLevel(Skills.SKILL.HITPOINTS, newHealth > p.getSkills().getMaxLevel(Skills.SKILL.HITPOINTS) ? p.getSkills().getMaxLevel(Skills.SKILL.HITPOINTS) : newHealth);
p.setLastAnimation(new Animation(829));
p.getPackets().sendSkillLevel(Skills.SKILL.HITPOINTS);
});
Server.registerEvent(eatFoodEvent);
}
示例7: 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))
//.........這裏部分代碼省略.........
示例8: handlePacket
public void handlePacket(Player player, Packet packet)
{
int size = packet.getLength();
if (packet.getPacketId() == PacketHandlers.PacketId.WALK_2)
{
size -= 14;
}
player.getWalkingQueue().resetWalkingQueue();
int steps = (size - 5) / 2;
if (steps > WalkingQueue.MAX_WALKING_WAYPOINTS)
{
Misc.WriteError("Warning: Walk command contains too many steps (" + steps + ") currently set to 50 [maybe need increase?]");
return;
}
player.getWalkingQueue().setIsRunning(packet.readByteA() == 1);
bool following = false;
if (!canWalk(player, packet, following))
{
player.getPackets().clearMapFlag();
player.getWalkingQueue().resetWalkingQueue();
return;
}
int firstX = packet.readUShort() - (player.getLocation().getRegionX() - 6) * 8;
int firstY = packet.readShortA() - (player.getLocation().getRegionY() - 6) * 8;
player.getWalkingQueue().addToWalkingQueue(firstX, firstY);
for (int i = 0; i < steps; i++) //all the waypoints.
player.getWalkingQueue().addToWalkingQueue((packet.readByteA() + firstX), (packet.readByteS() + firstY));
if (player.getTeleportTo() != null) //is teleporting?
player.getWalkingQueue().resetWalkingQueue();
if (player.getTemporaryAttribute("homeTeleporting") != null)
{
player.removeTemporaryAttribute("homeTeleporting");
}
SkillHandler.resetAllSkills(player);
if (player.getTrade() != null)
player.getTrade().decline();
if (player.getDuel() != null)
{
if (player.getDuel().getStatus() < 4)
player.getDuel().declineDuel();
else if (player.getDuel().getStatus() == 8)
player.getDuel().recieveWinnings(player);
}
if (player.getTarget() != null)
{
if (!following && player.getTarget().getAttacker() != null && player.getTarget().getAttacker().Equals(player))
player.getTarget().setAttacker(null);
}
if (!following)
{
player.getFollow().setFollowing(null);
player.setTarget(null);
player.removeTemporaryAttribute("autoCasting");
if (player.getEntityFocus() != 65535)
player.setEntityFocus(65535);
}
player.getPackets().closeInterfaces();
}
示例9: createdAnimatedArmour
protected static void createdAnimatedArmour(Player p, int index)
{
if (p.getTemporaryAttribute("warriorGuildAnimator") == null)
{
return;
}
p.setLastAnimation(new Animation(827));
p.setTemporaryAttribute("unmovable", true);
for (int i = 0; i < ARMOUR_SETS[index].Length; i++)
{
p.getInventory().deleteItem(ARMOUR_SETS[index][i]);
}
p.getPackets().sendChatboxInterface(211);
p.getPackets().modifyText("You place the armour onto the platform where it", 211, 1);
p.getPackets().modifyText("dissapears...", 211, 2);
int animatorIndex = (int)p.getTemporaryAttribute("warriorGuildAnimator");
Event createAnimatedArmourEvent = new Event(1500);
int createAnimatedArmourCounter = 0;
Npc npc = null;
createAnimatedArmourEvent.setAction(() =>
{
if (createAnimatedArmourCounter == 0)
{
p.getPackets().sendChatboxInterface(211);
p.getPackets().modifyText("The animator hums, something appears to be working.", 211, 1);
p.getPackets().modifyText("You stand back.", 211, 2);
createAnimatedArmourEvent.setTick(500);
}
else if (createAnimatedArmourCounter == 1)
{
p.getWalkingQueue().forceWalk(0, +3);
createAnimatedArmourEvent.setTick(2000);
}
else if (createAnimatedArmourCounter == 2)
{
createAnimatedArmourEvent.setTick(500);
Location minCoords = new Location(2849, 3534, 0);
Location maxCoords = new Location(2861, 3545, 0);
npc = new Npc(ANIMATED_ARMOUR[index]);
npc.setMinimumCoords(minCoords);
npc.setMaximumCoords(maxCoords);
npc.setLocation(new Location(ANIMATOR_LOCATIONS[animatorIndex][0], ANIMATOR_LOCATIONS[animatorIndex][1], 0));
npc.setWalkType(WalkType.STATIC);
npc.setForceText("I'm ALIVE!");
npc.setLastAnimation(new Animation(4166));
npc.setEntityFocus(p.getClientIndex());
npc.setOwner(p);
npc.setTarget(p);
p.getPackets().setArrowOnEntity(1, npc.getClientIndex());
Server.getNpcList().Add(npc);
}
else
{
p.setEntityFocus(npc.getClientIndex());
p.getPackets().softCloseInterfaces();
createAnimatedArmourEvent.stop();
p.removeTemporaryAttribute("unmovable");
npc.getFollow().setFollowing(p);
}
createAnimatedArmourCounter++;
});
Server.registerEvent(createAnimatedArmourEvent);
}
示例10: talkToWarriorGuildNPC
public static bool talkToWarriorGuildNPC(Player p, Npc n, int slot)
{
if (n.getId() != 4289)
{
return false;
}
p.setEntityFocus(n.getClientIndex());
int npcX = n.getLocation().getX();
int npcY = n.getLocation().getY();
AreaEvent talkToWarriorGuildNPCAreaEvent = new AreaEvent(p, npcX - 1, npcY - 1, npcX + 1, npcY + 1);
talkToWarriorGuildNPCAreaEvent.setAction(() =>
{
p.setFaceLocation(n.getLocation());
p.setEntityFocus(65535);
switch (n.getId())
{
case 4289: // Kamfreena
Dialogue.doDialogue(p, 77);
break;
}
});
Server.registerCoordinateEvent(talkToWarriorGuildNPCAreaEvent);
return true;
}
示例11: 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();
}
}
示例12: talkToBob
public static void talkToBob(Player p, Npc npc, int item, int option)
{
p.setEntityFocus(npc.getClientIndex());
AreaEvent talkToBobAreaEvent = new AreaEvent(p, npc.getLocation().getX() - 1, npc.getLocation().getY() - 1, npc.getLocation().getX() + 1, npc.getLocation().getY() + 1);
talkToBobAreaEvent.setAction(() =>
{
npc.setFaceLocation(p.getLocation());
p.setFaceLocation(npc.getLocation());
p.setEntityFocus(65535);
if (option == 0)
{ // use item on bob
if (item > 0)
{
p.setTemporaryAttribute("bobsAxesBarrowItem", item);
showBobDialogue(p, 101);
}
}
else if (option == 1)
{ // talk
showBobDialogue(p, 107);
}
else if (option == 2)
{ // trade
p.setShopSession(new ShopSession(p, 4));
}
});
Server.registerCoordinateEvent(talkToBobAreaEvent);
}