本文整理匯總了C#中RS2.Server.player.Player.getClientIndex方法的典型用法代碼示例。如果您正苦於以下問題:C# Player.getClientIndex方法的具體用法?C# Player.getClientIndex怎麽用?C# Player.getClientIndex使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類RS2.Server.player.Player
的用法示例。
在下文中一共展示了Player.getClientIndex方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: newMagicAttack
//.........這裏部分代碼省略.........
if (damage > target.getHp())
{
damage = target.getHp();
}
if (index == 47 && Misc.random(2) == 0)
{
endGfx = 85;
}
Combat.checkIfWillDie(target, damage);
Event doMagicAttackEvent = new Event(getSpellHitDelay(index));
doMagicAttackEvent.setAction(() =>
{
doMagicAttackEvent.stop();
if (p == null || p.isDead() || !fakeNPC && (target.isDead() || target.isHidden() || target.isDestroyed()))
{
return;
}
if (target.isAutoRetaliating() && target.getTarget() == null && damage > 0)
{
if (target is Npc)
{
}
else
{
if (((Player)target).getTemporaryAttribute("autoCastSpell") != null)
{
int autoCastSpell = (int)((Player)target).getTemporaryAttribute("autoCastSpell");
((Player)target).setTemporaryAttribute("autoCasting", true);
target.setTarget(p);
MagicCombat.newMagicAttack((Player)target, p, autoCastSpell, ((Player)target).getTemporaryAttribute("autoCastAncients") != null);
}
}
target.getFollow().setFollowing(p);
target.setEntityFocus(p.getClientIndex());
if ((target.getCombatTurns() <= (target.getAttackSpeed() / 2) || target.getCombatTurns() >= (target.getAttackSpeed())))
{
target.setCombatTurns(target.getAttackSpeed() / 2);
}
target.setTarget(p);
if (target is Player)
{
((Player)target).getWalkingQueue().resetWalkingQueue();
((Player)target).getPackets().clearMapFlag();
}
}
addMagicXp(p, target, damage, index, true);
target.setLastGraphics(new Graphics(endGfx, 0, getGroundHeight(index, endGfx)));
if (index == 47 && endGfx != 85)
{ // teleblock
if (target is Player)
{
teleblockPlayer(p, (Player)target);
}
}
if (damage != 0)
{
Combat.checkRecoil(p, target, damage);
Combat.checkSmite(p, target, damage);
Combat.checkVengeance(p, target, damage);
hitInMulti(p, target, index);
applyMiasmicEffects(p, target, index);
if ((target.getCombatTurns() > 2 || target.getCombatTurns() < 0) && !target.isDead())
{
target.setLastAnimation(new Animation(target.getDefenceAnimation()));
}
if (index != 27)
示例2: hitInMulti
public static void hitInMulti(Player p, Entity mainTarget, int index)
{
if (!Location.inMultiCombat(p.getLocation()) || !Location.inMultiCombat(mainTarget.getLocation()))
{
return;
}
else if (!hitsMulti(p, index))
{
return;
}
Location l = mainTarget.getLocation();
double totalDamage = 0;
if (mainTarget is Npc)
{
foreach (Npc n in Server.getNpcList())
{
if (n == null || n.Equals(mainTarget) || n.isDead() || n.isHidden() || n.isDestroyed())
{
continue;
}
if (n.getLocation().inArea(l.getX() - 1, l.getY() - 1, l.getX() + 1, l.getY() + 1))
{
if (!canCastSpell2(p, mainTarget, index, false))
{
continue;
}
if (n.isAutoRetaliating() && n.getTarget() == null)
{
//n.getFollow().setFollowing(killer);
n.setEntityFocus(p.getClientIndex());
n.setCombatTurns(n.getAttackSpeed() / 2);
n.setTarget(p);
}
int damage = Misc.random(Misc.random(getSpellMaxHit(p, index))); //double randomize? uhh wtf?
int graphic = END_GFX[index];
if (damage == 0)
{
graphic = 85;
}
if (damage > n.getHp())
{
damage = n.getHp();
}
if (damage > 0)
{
bool frozen = freezeTarget(index, n);
if (!frozen && index == 31)
{
graphic = 1677;
}
}
totalDamage += damage;
n.setAttacker(p);
n.setLastAttacked(Environment.TickCount);
n.setLastGraphics(new Graphics(graphic, 0, getGroundHeight(index, graphic)));
n.hit(damage);
if ((n.getCombatTurns() > 2 || n.getCombatTurns() < 0))
{
n.setLastAnimation(new Animation(n.getDefenceAnimation()));
}
addDamage(p, n, damage);
}
}
}
else
{
foreach (Player target in Server.getPlayerList())
{
if (mainTarget == null || target.Equals(mainTarget) || target.isDead() || target.isHidden() || target.isDestroyed())
{
continue;
}
if (target.getLocation().inArea(l.getX() - 1, l.getY() - 1, l.getX() + 1, l.getY() + 1))
{
if (!canCastSpell2(p, mainTarget, index, false))
{
continue;
}
if (target.isAutoRetaliating() && target.getTarget() == null)
{
//n.getFollow().setFollowing(killer);
target.setEntityFocus(p.getClientIndex());
target.setCombatTurns(target.getAttackSpeed() / 2);
target.setTarget(p);
}
int damage = Misc.random(Misc.random(getSpellMaxHit(p, index))); //double randomize? uhh wtf?
int graphic = END_GFX[index];
if (damage == 0)
{
graphic = 85;
}
if (damage > target.getHp())
{
damage = target.getHp();
}
if (damage > 0)
{
bool frozen = freezeTarget(index, target);
if (!frozen && index == 31)
{
//.........這裏部分代碼省略.........
示例3: 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);
}
示例4: doJadAttacks
private static void doJadAttacks(Player p, Npc npc)
{
if (npc.getHp() <= (npc.getMaxHp() * 0.50))
{
if (p.getFightCave() != null)
{
if (!p.getFightCave().isHealersSpawned())
{
summonJadHealers(p, npc);
p.getFightCave().setHealersSpawned(true);
}
}
}
npc.resetCombatTurns();
npc.setEntityFocus(p.getClientIndex());
switch (Misc.random(1))
{
case 0: // Range
npc.setLastAnimation(new Animation(9276));
npc.setLastGraphics(new Graphics(1625));
Event jadRangeAttackEvent = new Event(1600);
int jadRangeAttackStatus = 0;
jadRangeAttackEvent.setAction(() =>
{
int hit = 0;
int prayer = p.getPrayers().getHeadIcon();
if (jadRangeAttackStatus == 0)
{
jadRangeAttackStatus++;
jadRangeAttackEvent.setTick(1500);
p.setLastGraphics(new Graphics(451));
if (prayer == PrayerData.RANGE)
{
hit = 0;
}
else
{
hit = Misc.random(96);
}
}
else
{
if (prayer != PrayerData.RANGE)
{
hit = Misc.random(96);
}
jadRangeAttackEvent.stop();
p.setLastAttacked(Environment.TickCount);
npc.setLastAttack(Environment.TickCount);
p.setAttacker(npc);
if (hit > p.getHp())
{
hit = p.getHp();
}
if (!Location.inFightCave(p.getLocation()) || p.getTeleportTo() != null)
{
return;
}
if ((p.getCombatTurns() > 2 || p.getCombatTurns() < 0))
{
p.setLastAnimation(new Animation(p.getDefenceAnimation()));
}
p.hit(hit);
Event animationEvent = new Event(100);
animationEvent.setAction(() =>
{
animationEvent.stop();
p.setLastGraphics(new Graphics(157, 0, 100));
});
Server.registerEvent(animationEvent);
}
});
Server.registerEvent(jadRangeAttackEvent);
break;
case 1: // Magic
npc.setLastGraphics(new Graphics(1626));
Event jadMagicAttackEvent = new Event(300);
int jadMagicAttackStatus = 0;
jadMagicAttackEvent.setAction(() =>
{
int hit = 0;
int prayer = p.getPrayers().getHeadIcon();
npc.setLastAnimation(new Animation(9278));
if (jadMagicAttackStatus == 0)
{
jadMagicAttackStatus++;
jadMagicAttackEvent.setTick(1600);
p.getPackets().sendProjectile(npc.getLocation(), p.getLocation(), 32, 1627, 50, 40, 34, 90, p);
}
else
{
jadMagicAttackEvent.stop();
if (prayer == PrayerData.MAGIC)
{
hit = 0;
}
else
{
hit = Misc.random(96);
//.........這裏部分代碼省略.........
示例5: openCoffin
public static bool openCoffin(Player p, int objectId)
{
if (objectId != 6823 && objectId != 6771 && objectId != 6821 && objectId != 6773 && objectId != 6822 && objectId != 6772)
{
return false;
}
int cryptIndex = getCryptIndex(p);
if (cryptIndex == -1)
{
return false;
}
if (p.getBarrowBrothersKilled(cryptIndex))
{
p.getPackets().sendMessage("You don't find anything.");
return true;
}
if (p.getBarrowTunnel() == cryptIndex)
{
p.getPackets().modifyText("You find a hidden tunnel, do you want to enter?", 210, 1);
p.getPackets().sendChatboxInterface(210);
p.setTemporaryAttribute("barrowTunnel", 1);
return true;
}
foreach (Npc n in Server.getNpcList())
{
if (n.getId() == BROTHER_ID[cryptIndex])
{
if (n.getOwner().Equals(p))
{
p.getPackets().sendMessage("You don't find anything.");
return true;
}
}
}
Npc npc = new Npc(BROTHER_ID[cryptIndex]);
npc.setLocation(p.getLocation());
npc.setEntityFocus(p.getClientIndex());
npc.setOwner(p);
npc.setTarget(p);
npc.setCombatTurns(npc.getAttackSpeed());
Server.getNpcList().Add(npc);
p.getPackets().setArrowOnEntity(1, npc.getClientIndex());
return true;
}