13号避难所

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

书籍 求助

[复制链接]
跳转到指定楼层
楼主
发表于 2023-7-6 20:58:00 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何把吃书加的点数改成固定的
我尝试给书籍加上脚本 但是吃一次就 酒精上瘾
推荐
发表于 2023-7-12 10:22:28 | 只看该作者
這是我寫的腳本框架,你可以自己加上想要的技能提升邏輯。
  1. #include ".\headers\define.h"
  2. #include ".\headers\command.h"
  3. #include ".\headers\sfall\sfall.h"

  4. #define BOOK_BONUS    (5)

  5. procedure start;
  6. procedure UseObjHandler;

  7. procedure UseObjHandler begin
  8.    variable
  9.       user  := get_sfall_arg,
  10.       obj   := get_sfall_arg,
  11.       skill := -1,
  12.       bonus := BOOK_BONUS,
  13.       msg, skLevel;

  14.    if (obj_item_subtype(obj) == item_type_misc_item) then begin
  15.       switch obj_pid(obj) begin
  16.       case PID_BIG_BOOK_OF_SCIENCE:
  17.          skill := SKILL_SCIENCE;
  18.          msg := 802;
  19.       case PID_DEANS_ELECTRONICS:
  20.          skill := SKILL_REPAIR;
  21.          msg := 803;
  22.       case PID_FIRST_AID_BOOK:
  23.          skill := SKILL_FIRST_AID;
  24.          msg := 804;
  25.       case PID_SCOUT_HANDBOOK:
  26.          skill := SKILL_OUTDOORSMAN;
  27.          msg := 806;
  28.       case PID_GUNS_AND_BULLETS:
  29.          skill := SKILL_SMALL_GUNS;
  30.          msg := 805;
  31.       end

  32.       // read book
  33.       if (skill != -1) then begin
  34.          if combat_is_initialized then begin
  35.             display_msg(mstr_proto(902));
  36.             set_sfall_return(0);
  37.             return;
  38.          end

  39.          skLevel := has_skill(dude_obj, skill);

  40.          // custom skill increment logic begin


  41.          // custom skill increment logic end

  42.          gfade_out(1);
  43.          game_time_advance(ONE_GAME_HOUR * (11 - dude_iq));
  44.          exec_map_update_scripts;
  45.          gfade_in(1);
  46.          display_msg(mstr_proto(800));
  47.          if (has_skill(dude_obj, skill) == skLevel) then begin
  48.             msg := 801;
  49.          end
  50.          display_msg(mstr_proto(msg));
  51.          set_sfall_return(1); // remove
  52.       end
  53.    end
  54. end

  55. procedure start begin
  56.    if game_loaded then begin
  57.       register_hook_proc(HOOK_USEOBJ, UseObjHandler);
  58.    end
  59. end
复制代码
沙发
发表于 2023-7-6 21:45:25 | 只看该作者
原版那五本書的處理是寫死在引擎內的,用物品附加腳本的方式沒辦法繞過,你可以用HOOK_USEOBJ接手整個程序然後重寫一份新的處理方式。

板凳
 楼主| 发表于 2023-7-6 23:16:07 来自手机 | 只看该作者
novarain 发表于 2023-7-6 21:45
原版那五本書的處理是寫死在引擎內的,用物品附加腳本的方式沒辦法繞過,你可以用HOOK_USEOBJ接手整個程序 ...

大佬能不能帮我写一份脚本啊 你说的我不会弄
地板
发表于 2023-7-7 08:53:03 | 只看该作者
不明觉厉,前排留言,哈哈哈哈
5#
 楼主| 发表于 2023-7-7 12:47:18 来自手机 | 只看该作者
救命 我吃治疗针都酒精上瘾
6#
发表于 2023-7-7 15:23:34 | 只看该作者
我不知道你做了什麼,不過書的腳本我偷閒時試著寫了一下,看來不算複雜。
7#
 楼主| 发表于 2023-7-8 10:17:56 来自手机 | 只看该作者
novarain 发表于 2023-7-7 15:23
我不知道你做了什麼,不過書的腳本我偷閒時試著寫了一下,看來不算複雜。

大佬你知道 modderspack 的 compile.exe如何使用吗
8#
发表于 2023-7-8 16:07:21 | 只看该作者
那是命令行工具,直接執行是沒有用的。
9#
 楼主| 发表于 2023-7-8 16:17:36 来自手机 | 只看该作者
novarain 发表于 2023-7-8 16:07
那是命令行工具,直接執行是沒有用的。

那我该如何把ssl文件转成int
10#
发表于 2023-7-8 18:31:08 | 只看该作者
基本一些的就在命令行下:compile.exe -p -O2 你的.ssl

如果你修改的原始腳本是用短路求值邏輯寫的那再加上-s,編譯有問題就照錯誤訊息去找出錯的行數修bug。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 04:57 , Processed in 0.057076 second(s), 14 queries .

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