13号避难所

 找回密码
 立即注册
搜索
查看: 2504|回复: 10
打印 上一主题 下一主题

版主...有天赋异禀的角色的体质属性值好奇怪啊...

[复制链接]
楼主
发表于 2019-7-20 00:08:02 | 显示全部楼层
Gifted的運作方式比較特別,它是在引擎內部需要取SPECIAL做相關計算時直接+1上去,角色資料內的原始SPECIAL基礎值不會因為選了它而增加。
本來沒選Gifted之前EN 7的角色選了變8,但角色資料內的數值還是7。它不像Gain XXX那些perk一樣選取當下把數值加到角色資料內。
沙发
发表于 2019-7-20 01:05:15 | 显示全部楼层
你那腳本本身邏輯有問題,照你寫法不論有沒有Gifted都會執行同樣的操作,那你做trait檢查根本一點用都沒有。而且你用錯參數了,是TRAIT_TRAIT不是TRAIT_PERK。
如果你只是希望像是EN 5每次升級的HP應該要和EN 6一樣多,而不是只有EN 4的量的話,我已經寫了一個應該可用的腳本了。
板凳
发表于 2019-7-20 02:12:29 | 显示全部楼层
我不清楚你到底想達成什麼效果,如果是我上面說的那樣,這是我寫的版本:
  1. #include ".\HEADERS\define.h"
  2. #include ".\HEADERS\command.h"

  3. procedure start;

  4. variable lvTmp;

  5. procedure start begin
  6.    if (game_loaded) then begin
  7.       set_global_script_repeat(60);
  8.       lvTmp := get_pc_stat(PCSTAT_level);
  9.    end else begin
  10.       variable
  11.          currLv := get_pc_stat(PCSTAT_level),
  12.          baseEN := get_pc_base_stat(STAT_en) + has_trait(TRAIT_TRAIT, dude_obj, TRAIT_gifted);

  13.       if (currLv > lvTmp and baseEN % 2) then begin
  14.          set_pc_extra_stat(STAT_max_hp, (currLv - 1) * ((baseEN + 1) / 2 + 2));
  15.          critter_heal(dude_obj, (baseEN + 1) / 2 + 2);
  16.          lvTmp := get_pc_stat(PCSTAT_level);
  17.       end
  18.    end
  19. end
复制代码

這樣EN 5的角色升級加的HP就會和EN 6一樣多。
地板
发表于 2019-7-20 22:42:05 | 显示全部楼层
你想要有能被存起來的額外全域變數就設個sfall global variable。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|13号避难所

GMT+8, 2024-6-7 21:10 , Processed in 0.050361 second(s), 12 queries .

快速评论 返回顶部 返回列表