搜索
查看: 3466|回复: 5

魔兽3.0第9族问题,有修改魔兽经验的来看看

[复制链接]
发表于 2010-4-24 08:00:56 | 显示全部楼层 |阅读模式 来自 广东中山
我修改了一个20级的魔兽,其他种族都可以升到20级,但是9族一超过10级,服务器就挂了,到底什么问题呢?希望有经验的玩家来看看。
  1. /*
  2. *        Race: Chameleon Functions
  3. */

  4. public CHAM_Randomize()
  5. {
  6.         if ( get_pcvar_num( CVAR_wc3_races ) == 9 && get_pcvar_num( CVAR_wc3_cham_random ) )
  7.         {
  8.                 new i, iNewSkill, iType;

  9.                 // Lets loop through and find some skills!
  10.                 for ( i = 0; i < 5; i++ )
  11.                 {
  12.                         iNewSkill = random_num( 0, MAX_SKILLS - 1 );
  13.                        
  14.                         // Trainable Skills
  15.                         if ( i < 3 )
  16.                         {
  17.                                 iType = SKILL_TYPE_TRAINABLE;
  18.                         }

  19.                         // Ultimate
  20.                         else if ( i == 3 )
  21.                         {
  22.                                 iType = SKILL_TYPE_ULTIMATE;
  23.                         }

  24.                         // Passive Ability
  25.                         else if ( i == 4 )
  26.                         {
  27.                                 iType = SKILL_TYPE_PASSIVE;
  28.                         }
  29.                        
  30.                         // Loop until we find the right type of skill and while the skill exists ( we don't want a duplicate skill!! )
  31.                         while ( g_SkillType[iNewSkill] != iType || CHAM_SkillExists( iNewSkill ) )
  32.                         {
  33.                                 iNewSkill = random_num( 0, MAX_SKILLS - 1 );
  34.                         }

  35.                         g_ChamSkills[i] = iNewSkill;
  36.                 }

  37.                 // Do we need to set-up the skills for certain players?
  38.                 new iPlayers[32], iNumPlayers, id;
  39.                 get_players( iPlayers, iNumPlayers );

  40.                 for ( i = 0; i < iNumPlayers; i++ )
  41.                 {
  42.                         id = iPlayers[i];

  43.                         if ( p_data[id][P_RACE] == RACE_CHAMELEON )
  44.                         {
  45.                                
  46.                                 // Reset everything
  47.                                 SM_ResetSkillLevels( id );
  48.                                 SM_ResetSkills( id );

  49.                                 // Set up the player's race again
  50.                                 SM_SetPlayerRace( id, RACE_CHAMELEON );

  51.                                 // Set up the player's skill levels
  52.                                 CHAM_ConfigureSkills( id );
  53.                                
  54.                                 // After skills set up - we need to configure the race!
  55.                                 WC3_SetRaceUp( id );
  56.                         }
  57.                 }
  58.         }
  59. }

  60. CHAM_SkillExists( skill_id )
  61. {
  62.         new i;

  63.         for ( i = 0; i < 5; i++ )
  64.         {
  65.                 if ( g_ChamSkills[i] == skill_id )
  66.                 {
  67.                         return true;
  68.                 }
  69.         }

  70.         return false;
  71. }

  72. CHAM_Configure()
  73. {

  74.         // Configure the Chameleon Race
  75.         if ( !get_pcvar_num( CVAR_wc3_cham_random ) )
  76.         {
  77.                 g_ChamSkills[0] = get_pcvar_num( CVAR_wc3_cham_skill1 );
  78.                 g_ChamSkills[1] = get_pcvar_num( CVAR_wc3_cham_skill2 );
  79.                 g_ChamSkills[2] = get_pcvar_num( CVAR_wc3_cham_skill3 );
  80.                 g_ChamSkills[3] = get_pcvar_num( CVAR_wc3_cham_ultimate );
  81.                 g_ChamSkills[4] = get_pcvar_num( CVAR_wc3_cham_passive );

  82.                 // Lets do some error checking b/c I know some people will fuck this up...
  83.                
  84.                 new i, bool:bError = false;
  85.                 for ( i = 0; i < 3; i++ )
  86.                 {
  87.                         if ( !CHAM_ValidSkill( g_ChamSkills[i], SKILL_TYPE_TRAINABLE ) )
  88.                         {
  89.                                 WC3_Log( true, "Invalid trainable skill for cvar wc3_cham_skill%d: %d", i+1, g_ChamSkills[i] );
  90.                                 bError = true;
  91.                         }
  92.                 }
  93.                
  94.                 // Check Ultimate
  95.                 if ( !CHAM_ValidSkill( g_ChamSkills[3], SKILL_TYPE_ULTIMATE ) )
  96.                 {
  97.                         WC3_Log( true, "Invalid ultimate skill for cvar wc3_cham_ultimate: %d", g_ChamSkills[3] );
  98.                         bError = true;
  99.                 }

  100.                 // Check Passive
  101.                 if ( !CHAM_ValidSkill( g_ChamSkills[4], SKILL_TYPE_PASSIVE ) )
  102.                 {
  103.                         WC3_Log( true, "Invalid passive skill for cvar wc3_cham_passive: %d", g_ChamSkills[4] );
  104.                         bError = true;
  105.                 }

  106.                 if ( bError )
  107.                 {
  108.                         set_pcvar_num( CVAR_wc3_cham_random, 1 )
  109.                 }
  110.         }
  111. }

  112. // This will randomly assign skills to a player w/chameleon
  113. CHAM_ConfigureSkills( id )
  114. {       
  115.         // Keep giving the a random skill until we have no more to give!
  116.         while ( SM_GiveRandomSkillPoint( id ) ) {}

  117.         // Display /level info...
  118.         WC3_ShowRaceInfo( id );
  119. }

  120. CHAM_ValidSkill( skill_id, iType )
  121. {
  122.         if ( skill_id < 0 || skill_id >= MAX_SKILLS )
  123.         {
  124.                 return false;
  125.         }

  126.         if ( g_SkillType[skill_id] != iType )
  127.         {
  128.                 return false;
  129.         }

  130.         return true;
  131. }
复制代码
 楼主| 发表于 2010-6-26 09:16:24 | 显示全部楼层 来自 广东中山
没有能解决这个问题
回复

使用道具 举报

发表于 2010-9-23 21:23:04 | 显示全部楼层 来自 广东惠州
不好意思,我也不懂
回复

使用道具 举报

发表于 2010-9-24 08:40:33 | 显示全部楼层 来自 广东江门
具体忘记了,当年就改了20级的东东
回复

使用道具 举报

发表于 2010-9-26 13:24:36 | 显示全部楼层 来自 贵州贵阳
没钱了!哇哇!刷了!22222222
回复

使用道具 举报

发表于 2014-8-26 23:28:06 | 显示全部楼层 来自 重庆长寿区
我很久以前改过,http://www.dt-club.net/forum.php ... mp;page=2#pid576005
保存的cs 进去看了下  没有你说的9族错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表