|
這是我寫的腳本框架,你可以自己加上想要的技能提升邏輯。
- #include ".\headers\define.h"
- #include ".\headers\command.h"
- #include ".\headers\sfall\sfall.h"
- #define BOOK_BONUS (5)
- procedure start;
- procedure UseObjHandler;
- procedure UseObjHandler begin
- variable
- user := get_sfall_arg,
- obj := get_sfall_arg,
- skill := -1,
- bonus := BOOK_BONUS,
- msg, skLevel;
- if (obj_item_subtype(obj) == item_type_misc_item) then begin
- switch obj_pid(obj) begin
- case PID_BIG_BOOK_OF_SCIENCE:
- skill := SKILL_SCIENCE;
- msg := 802;
- case PID_DEANS_ELECTRONICS:
- skill := SKILL_REPAIR;
- msg := 803;
- case PID_FIRST_AID_BOOK:
- skill := SKILL_FIRST_AID;
- msg := 804;
- case PID_SCOUT_HANDBOOK:
- skill := SKILL_OUTDOORSMAN;
- msg := 806;
- case PID_GUNS_AND_BULLETS:
- skill := SKILL_SMALL_GUNS;
- msg := 805;
- end
- // read book
- if (skill != -1) then begin
- if combat_is_initialized then begin
- display_msg(mstr_proto(902));
- set_sfall_return(0);
- return;
- end
- skLevel := has_skill(dude_obj, skill);
- // custom skill increment logic begin
- // custom skill increment logic end
- gfade_out(1);
- game_time_advance(ONE_GAME_HOUR * (11 - dude_iq));
- exec_map_update_scripts;
- gfade_in(1);
- display_msg(mstr_proto(800));
- if (has_skill(dude_obj, skill) == skLevel) then begin
- msg := 801;
- end
- display_msg(mstr_proto(msg));
- set_sfall_return(1); // remove
- end
- end
- end
- procedure start begin
- if game_loaded then begin
- register_hook_proc(HOOK_USEOBJ, UseObjHandler);
- end
- end
复制代码 |
|