KThiefSkill.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma once
  2. #include "KCore.h"
  3. #include "Skill.h"
  4. #include "KNpc.h"
  5. #include "KPlayer.h"
  6. #define THIEFSKILL_SETTINGFILE "\SETTINGS\THIEFSKILL.TXT"
  7. enum 
  8. {
  9. thief_redress, //劫富济贫
  10. thief_showlife,
  11. thief_showmana,
  12. thief_showmoney,
  13. thief_runscript, //使玩家执行某个脚本
  14. };
  15. //----------------------------------------------------------------------
  16. /*
  17. 劫富济贫
  18.   一、技能系统:
  19.   1、  技能名称:劫富济贫;
  20.   2、  技能作用:有一定几率偷盗别人身上锁带的钱财的Y%,被偷的钱被系统吃掉;
  21.   3、  技能范围:新手无法学习和使用,技能不能升级,白名以外的人之间可以相互作用,不受战斗关系限制;
  22.   4、  技能消耗:使用此技能消耗角色的内力X点;
  23.   5、  技能命中:此技能命中率由主动方与被动方等级差决定,命中率=30-|Lv1-Lv2|×0.3。
  24.   二、任务系统:
  25.   1、  与乞丐对话,选择是否给乞丐钱;
  26.   2、  乞丐有N%的概率教角色此技能,N应该为一个很小的比例。
  27.   三、系统消息:
  28.   1、  被偷成功:%%%从你身上偷到###两银子捐给前线;
  29.   2、  被偷未遂:%%%试图偷你的钱;
  30.   3、  偷窃成功:你成功的从%%%那里偷到###两银子捐给前线;
  31.   4、  偷窃未遂:你偷%%%失败。
  32. */
  33. //----------------------------------------------------------------------
  34. class KThiefSkill :public ISkill
  35. {
  36. public:
  37. KThiefSkill();
  38.     virtual ~KThiefSkill();
  39. int GetSkillId();
  40. const char * GetSkillName();
  41. int GetSkillStyle();
  42. void LoadSkillLevelData(unsigned long  ulLevel, int nParam);
  43. int DoSkill(KNpc * pNpc, int nX, int nY);
  44. int OnSkill(KNpc * pNpc);
  45. BOOL CanCastSkill  (int nLauncher, int &nParam1, int &nParam2)  const ;
  46. unsigned long GetDelayPerCast(){return m_ulDelayPerCast;};
  47. int Cast(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  48. NPCATTRIB GetSkillCostType()const{return m_nSkillCostType;};
  49. int GetSkillCost(void * pParam)const;
  50. int GetAttackRadius() const{ return m_ulAttackRadius;};
  51. BOOL m_bTargetEnemy;
  52. BOOL m_bTargetAlly;
  53. BOOL m_bTargetObj;
  54. char m_szSkillName[50];
  55. BOOL m_bUseCostPercent;//使用该技能时,消耗值按百分比计算/或者绝对数值
  56. BOOL IsTargetOnly()const{return TRUE;};
  57. BOOL IsTargetEnemy()const{return TRUE;};
  58. BOOL IsTargetAlly()const{return TRUE;};
  59. BOOL IsTargetObj()const{return FALSE;};
  60. BOOL LoadSetting(char * szSettingFile);
  61. #ifndef _SERVER
  62. char m_szSkillIcon[100];
  63. KRUImage m_RUIconImage;
  64. char m_szSkillDesc[300];//技能的描述
  65. char m_szTargetMovie[200];
  66. char m_szTargetMovieParam[20];
  67. char m_szSkillSound[200];
  68. void DrawSkillIcon(int x, int y, int Width, int Height)  ;
  69. char m_szSkillSpecialFile[200];
  70. void GetDesc(unsigned long ulSkillId, unsigned long ulCurLevel, char * pszMsg, int nOwnerIndex,  bool bGetNextLevelDesc);
  71. #endif
  72. unsigned long m_ulAttackRadius;
  73. unsigned long m_ulDelayPerCast;
  74. NPCATTRIB m_nSkillCostType;
  75. unsigned long m_nThiefPercent;
  76. int m_nCost;
  77. private:
  78. int m_nThiefStyle;
  79. DWORD m_dwParam1;
  80. DWORD m_dwParam2;
  81. #ifdef _SERVER
  82. int Cast_Redress(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  83. int Cast_ShowLife(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  84. int Cast_ShowMana(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  85. int Cast_ShowMoney(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  86. int Cast_RunScript(KPlayer * pLauncherPlayer, KPlayer * pTargetPlayer);
  87. #endif
  88. };