publicStepsStep{get;privateset;}
StepscountdownStep;
intsecondsRemaining;
publicHuntingSpiderKind(){
title.Text="副本【猎杀蜘蛛魔王】";
TriggerOrgan=newbool[stepExplanation.Count];
}
///<summary>
///开始
///</summary>
publicoverridevoidRun(List<RoleBase>players,Spacespace){
this.space=space;
this.players=players;
players[0].PositionChanged+=newDependencyPropertyChangedEventHandler(player0_PositionChanged);
checkTimer.Start();
//离开的传送门(测试用)
space.AddAnimation(newAnimationBase(){
ID=0,
Code=81,
Position=newPoint(-1320,1970),
Z=1970,
Tip="离开副本",
Loop=true,
});
space.RunWeather(WeatherTypes.Cloud,50);
}
///<summary>进度检查(网络版中为所有玩家都要检测,目前单机只检测players[0]即主角)</summary>
protectedoverridevoidStepCheck(objectsender,EventArgse){
SetDescription(string.Format("Step{0}:{1}",(int)Step,stepExplanation[Step]));
switch(Step){
caseSteps.设置右键魔法8级连锁闪电或6级石封箭:
if((players[0].CurrentMagic.Level==8&&players[0].CurrentMagic.Code==9)||(players[0].CurrentMagic.Level==6&&players[0].CurrentMagic.Code==12)){
space.AddAnimation(newAnimationBase(){
ID=0,
Code=82,
Position=newPoint(-583,1695),
Z=1695,
Tip="传送点",
Loop=true,
});
space.Terrain.AddTeleport(newTeleport(){
Code=0,
ToSpace=space.Code,
Instance=InstanceTypes.None,
ToCoordinate=newPoint(46,72),
ToDirection=Directions.SouthEast
},"45_68_0,46_68_0,");
StartCountdown(Steps.十二秒内到达传送点,12);
}
break;
caseSteps.消灭所有翼族:
if(space.AllRoles().Count==players.Count){//这样的检测方案只是暂定的,很可能存在BUG
Step=Steps.进入传送点到达山的彼岸;
space.AddAnimation(newAnimationBase(){
ID=0,
Code=82,
Position=newPoint(-238,2018),
Z=2018,
Tip="传送点",
Loop=true,
});
space.Terrain.AddTeleport(newTeleport(){
Code=1,
ToSpace=space.Code,
Instance=InstanceTypes.None,
ToCoordinate=newPoint(73,25),
ToDirection=Directions.SouthWest
},"63_71_0,62_70_0,62_72_0,");
}
break;
caseSteps.设置右键魔法为7级陨石坠落:
if(players[0].CurrentMagic.Level==7&&players[0].CurrentMagic.Code==7){
StartCountdown(Steps.等待3秒刺客来袭,3);
}
break;
caseSteps.消灭所有刺客:
if(space.AllRoles().Count==players.Count){
Step=Steps.骑上马并移动到59_60附近开启封印;
}
break;
caseSteps.骑上马并移动到59_60附近开启封印:
if(TriggerOrgan[(int)Step]){
StartCountdown(Steps.在23秒内为武器附上烟火粒子,23);
}
break;
caseSteps.在23秒内为武器附上烟火粒子:
if(players[0].DisplayWeaponParticle){
StartCountdown(Steps.在180秒内消灭蜘蛛魔王,180);
Monsterboss=newMonster(space.Terrain){
ID=3120000,
//AttachID=4100000,
Code=2,
FullName="蜘蛛魔王",
LearnedMagic=newDictionary<int,int>(){{0,6},{1,6},{2,6},{3,6},{4,6},{5,6},{6,6},{7,6},{8,6},{9,6},{10,6},{11,6},{12,6},{13,6},{14,6},{15,6},{16,6},{17,6},{18,6}},
Profession=Professions.Monster,
ArmorCode=16,
Direction=Directions.SouthEast,
State=States.Walking,
Camp=Camps.Eval,
TacticAI=TacticAIs.GoalLeader,
ActionAI=ActionAIs.Persistent,
LifeMax=640000,
Life=640000,
ATK=24059,
DEF=1500,
MAG=500,
DEX=ObjectBase.RandomSeed.Next(0,30),
Coordinate=newPoint(49,59)
};
space.AddRole(boss,newRoleAddedEventArgs(){
RegisterDisposedEvent=true,
RegisterIntervalTriggerEvent=true,
RegisterActionTriggerEvent=true,
RegisterDoAttackEvent=true,
RegisterDoCastingEvent=true,
RegisterPositionChangedEvent=true,
RegisterLifeChangedEvent=true,
});
space.MusicUri="Boss";
}
break;
caseSteps.在180秒内消灭蜘蛛魔王:
if(space.AllRoles().Count==players.Count){
Step=Steps.副本完成通过传送门离开;
space.MusicUri="100";
space.AddAnimation(newAnimationBase(){
ID=0,
Code=81,
Position=newPoint(-300,1591),
Z=1591,
Tip="传送到【废墟秘境】",
Loop=true,
});
}
break;
}
}
///<summary>
///开始倒计时
///</summary>
voidStartCountdown(Stepsstep,intremaining){
countdownStep=Step=step;
secondsRemaining=remaining;
countdownTimer.Start();
}
///<summary>
///倒计时
///</summary>
protectedoverridevoidCountdown(objectsender,EventArgse){
if(Step!=countdownStep){
countdownTimer.Stop();
additionalInformation.Text="";
}else{
additionalInformation.Text=string.Format("倒计时:{0}",secondsRemaining);
if(secondsRemaining==0){
additionalInformation.Text="";
switch(Step){
caseSteps.十二秒内到达传送点:
caseSteps.在23秒内为武器附上烟火粒子:
caseSteps.在180秒内消灭蜘蛛魔王:
Exit("副本【猎杀蜘蛛魔王】战斗失败");
break;
caseSteps.等待4秒翼族来袭:
Step=Steps.消灭所有翼族;
AddRolesEvent(newAddRolesEventArgs(){Num=10,Mode=1,Profession=Professions.Archer,State=States.Riding,TacticAI=TacticAIs.GoalLeader});
break;
caseSteps.等待3秒刺客来袭:
Step=Steps.消灭所有刺客;
AddRolesEvent(newAddRolesEventArgs(){Num=30,Mode=2,Profession=Professions.Assassin,State=States.Walking,TacticAI=TacticAIs.GoalLeader});
break;
}
}
secondsRemaining--;
}
}
voidplayer0_PositionChanged(objectsender,DependencyPropertyChangedEventArgse){
Pointp=(Point)(e.NewValue);
intx=(int)p.X;
inty=(int)p.Y;
if((x==41&&y==90)||(x==40&&y==91)){
LeaveEvent(newLeaveEventArgs(){Destination=newTeleport(){Instance=InstanceTypes.None,ToSpace=0,ToDirection=Directions.SouthEast,ToCoordinate=newPoint(57,28)}});
Dispose(this,null);
}elseif(Step==Steps.十二秒内到达传送点&&x==46&&y==72){
StartCountdown(Steps.等待4秒翼族来袭,4);
}elseif(Step==Steps.进入传送点到达山的彼岸&&x==73&&y==25){
Step=Steps.设置右键魔法为7级陨石坠落;
}elseif(Step==Steps.副本完成通过传送门离开&&((x==48&&y==59)||(x==48&&y==58)||(x==47&&y==58))){
LeaveEvent(newLeaveEventArgs(){Destination=newTeleport(){Instance=InstanceTypes.GodFam,ToSpace=101,ToDirection=Directions.NorthWest,ToCoordinate=newPoint(60,44)}});
Dispose(this,null);
}
}
相关推荐
在"Silverlight 2.5D RPG游戏技巧与特效处理:(二)纸娃娃系统 - alamiye010 - CSDN博客.htm"这篇文章中,作者alamiye010详细介绍了如何在Silverlight中实现这一系统。该系统允许玩家在游戏过程中通过更换装备来...
C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十八)经典式属性设计及完美的物理攻击系统 C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十九)人工智能(AI)之追踪者 C#开发WPF/...
【Silverlight项目获取天气、PM2.5信息】 在信息技术领域,Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、具有多媒体元素的Web应用程序。本项目专注于利用Silverlight技术...
Silverlight 游戏开发小技巧 本文主要介绍了 Silverlight 游戏开发中的小技巧,具体来说是血条和进度条的实现方法。Silverlight 是.NET 技术中游戏开发的重要组成部分,本文将详细讲解如何使用 Silverlight 实现...
其实更奇妙的风景还在下面,为了演绎这场华丽的结局,全新编写的4个魔法旨在换取您的惊叹,一切源于Silverlight,因此您无须复杂的代码照样可以实现绝非简单的游戏特效。 圆月斩,附带HLSL编写的空间扭曲动画效果,...
在深入学习 Silverlight RPG 游戏开发之前,首先需要理解 Silverlight 的基本概念和技术优势。Silverlight 是微软推出的一种 Web 前端应用开发工具,它主要用于构建富互联网应用程序(RIA),并且以浏览器插件的形式...
【Silverlight编程基本知识及技巧】 Silverlight是微软推出的一种基于.NET Framework的浏览器插件,用于创建丰富的交互式Web应用程序。它提供了丰富的图形、动画、媒体播放和数据绑定功能,使得开发者可以构建出与...
《Silverlight网络游戏飞行岛2.0源码》是一款基于Microsoft Silverlight技术开发的网络游戏,它展示了Silverlight在游戏开发中的应用。Silverlight是微软推出的一种RIA(Rich Internet Application)技术,用于创建...
《使用Silverlight实现图片特效详解》 Silverlight,作为微软推出的一种富互联网应用程序技术,曾经在Web开发领域占据一席之地。它允许开发者创建具有丰富交互性和多媒体元素的Web应用,其中图片特效就是其一大亮点...
通过这个实例,开发者不仅可以掌握Silverlight与Bing Maps的结合使用,还能了解到如何将富媒体特效融入地图应用,提升用户体验。这在地理信息系统、导航、房地产、旅游等领域都有广泛的应用价值。通过深入研究和实践...
标题中的“一款Silverlight很酷的游戏”表明我们讨论的主题是一款基于Silverlight技术开发的互动游戏。Silverlight是微软推出的一种富互联网应用程序(RIA)平台,主要用于构建和展示具有丰富媒体体验和交互性的Web...
《基于Silverlight的网页聊天系统详解》 Silverlight,由微软公司开发,是一种强大的工具,用于构建具有丰富用户体验的Web应用程序。在这个特定的项目中,我们关注的是一个使用Silverlight 3技术构建的网页聊天系统...
通过深入研究这个Silverlight空中躲避游戏的源码,开发者不仅可以掌握Silverlight的基本用法,还能了解到游戏开发的核心技巧,如游戏循环、碰撞检测、动画制作以及用户体验设计。这将对提升Silverlight开发技能,...
总的来说,实现Silverlight的翻书特效需要对Silverlight的UI设计、动画、3D支持和事件处理有深入的理解。通过结合C#编程技巧和ASP.NET的集成,你可以创建出一个生动、真实的在线阅读体验。不断学习和实践这些技术,...
【银光+N维拼图游戏:Silverlight与WCF技术的完美融合】 本文将深入探讨一个基于Silverlight和WCF技术构建的n维拼图游戏的实现细节。Silverlight是微软推出的一种富互联网应用程序(RIA)平台,它允许开发者创建...
1. **UI元素动画**:Silverlight提供了强大的动画系统,可以对UI元素的各个属性如位置、大小、透明度等进行平滑的动画处理。书页翻动特效通常会用到旋转、缩放和透明度变化等动画来模拟纸张的翻转动作。 2. **3D...
silverlight做的小游戏,提供源代码!
【标题】"Silverlight:ASP.NET与Ajax开发实战1"是一个深入探讨Silverlight技术如何与ASP.NET和Ajax结合,以实现高效、交互丰富的Web应用程序的教程。本资源可能包括一系列的章节、示例代码和讲解,旨在帮助开发者...
3. **动画和特效**:Silverlight提供了强大的动画支持,可以创建动态的UI元素和游戏效果,如角色移动、技能释放等。 4. **网络通信**:游戏中的多人在线功能需要实现客户端和服务器之间的实时通信。Silverlight支持...