From a66ff8d252784f5b67ae17d5c4022b1786661160 Mon Sep 17 00:00:00 2001 From: NovaRain Date: Wed, 27 Mar 2024 11:18:53 +0800 Subject: [PATCH] Edits to gl_partycontrol and main.h * it seems no need to "fix" Gecko Skinning perk anymore. * use array to hold perk levels instead of calling has_trait twice. --- artifacts/mods/gl_highlighting.int | Bin 4930 -> 4942 bytes artifacts/mods/gl_partycontrol.int | Bin 5504 -> 5594 bytes artifacts/mods/gl_partycontrol.ssl | 22 +++++++++++++--------- artifacts/mods/main.h | 19 +++++++++---------- artifacts/sfall.dat | Bin 162099 -> 162119 bytes artifacts/sfall_ru.dat | Bin 162357 -> 162377 bytes artifacts/sfall_zh.dat | Bin 162116 -> 162136 bytes 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/artifacts/mods/gl_highlighting.int b/artifacts/mods/gl_highlighting.int index 406a49f48136cddc40f464d57ca9eeadf594129f..227443f6b0a7e128c3d10341249ea499840fbdd2 100644 GIT binary patch delta 1177 zcmX@4c1~?VVf_OJ1_ovZ1_loX6u_3mz`(%7z`ziKBFw<{4Z>%HP;ipnje&uIk%57c z4=w~|u&;oM%YeCXfX!pyt^PQ#w-X8 zBl%}QSd4WL8bvl00jX{gVAI^PKn8nSgjd7Cd;u&futrouz5?~0n0Nr7=dYq2IB^45R2{D zJPo`Jk_}o7nhiV+GLtW`DKe@}{=`{FAMafHeSf!GXe4MGr$IPDrF8uS~aK%$&Blj}GX zCR=do3*Q3q8JHV{8eF037EG?;py2hItj8&ANS1IlaLFqFg`?q+Cd#22FX!WFG-%?sttT zP-RCZ&k|5(yft~BfEbe?%j9bU`iv%%*#z|&Qzn}U>N8H6oF=Hxcx3W4L4C$AlaC4N zGb&B~CaB8jHCaYTpRr`JkB}zgyvb!knUZD@#|xXGS|}_w`46uIlduUWh$bK47XbjV C7VvQZ delta 1315 zcmX@7c1UePVf`Hj1_ovZ1_loX6u=h6z`(%7z`ziKBFw<{3c_cEP;ipnih+TFk%57c z4=w~|u+M>t%YeCXfgCgKUUxo%i*Xv5RtA$GLcjz>GB7Yg4TSI*7z8>tPhwoo%-Av6iq)0z(BuYI zE4~9D@3S-*Lg>kUY%-Hyuv#iRfceY~Mh6)G|NsBL!MH&mEW!j50eP#zaIy!Rx8wyB zQHBQN25FE8+rG(b*i<+`Oa`U~!^wBp6d9!^|6{9V?3!G|9>m1{ZSn>71R;)ZU=@rF zMiApUiY7a8II=$hiE>Pv+{K~DehJLpH+d6BsH_`^&A`?m1hItEs6nDZzd;Hl%4smU zi$h`ZHUXi@VVttU=Rjf%%nd>fu28j8Cbw}aGVYqZg40zHtb+k=E0@sZf1Ij}3X@g1 zIvF!2ujBF+^Z@GzsQ`P2TVgT~w>+cU3pf)DBkzz>mp~ z1oRm-CJPDbGe%5y64Ynxm|P^N&$wgqB0+t|7n3gu>NAQ>W)f0mw41CUq|cZ!IYLO2 lanj@_p-f{fh-ZYgz-EGc0d}u27lwOXA#M@Ym@Fr3003875jX$< diff --git a/artifacts/mods/gl_partycontrol.int b/artifacts/mods/gl_partycontrol.int index 83280fac8151a8da1334a7fd2c51f47b4fbd5776..e2eca16d31227d7c09ee0ba48fdaf559b015eebc 100644 GIT binary patch delta 2131 zcmZqBzNIbDz;u9-fq_A&ffq!x^h^{mtbfA*0TK`jMzVm!Sr`}?G+-hSnzev|fq|KU zfx!gAhmowG7#J9s7#J8_U?LEjZ4p#F0>X!p>>zU(7#Qjq5@13Qn!AXBfdS-7r~-&6 z0|WOtsKqrf5eUr#bI2qJA4Up?Kv`>`G?WrP0c9Kk)7oGXM2JLzNCpOmTTmKGiCRGz zjEgpBF$yvY2qdPYq^1O<7G?XSmZjztZ?0qtWSYEyg^ib=Wc{Z(w0#VY}17JNX>9*yMF=A~_(HO<hx#|EPY^9BQu86dS_ z8thb1WPxm9U;sJ2Nx#XwNe@MqvB46`2b<6KXR;i-K6g}ON`pQ~oPEvY2zF)0E0b&3 z^(E~R6W1{Xy&js7(q>9ggOue1^ocfY9VA{F%mFknj`O1=X_)tOp*;0t>LjqJe;{GA!QH zn#v&YEtmt=$puRv0-q)q2$(`e*&Bo)whHP^-X@@$j+~#Cfc0@S2sKqgOakS$#yen9 zMli_tq7~F)cxeQJgS`fsMZlHUbj1P~(MO zOl}f1W;``{o1k_w5lH}Q33CH1aX{l(XcgFO)&^J{!<+@N4IYz|y@ZsQgv2K238^p% z+f1G!q#+_~g(b8v2pI}Ok_{+q!KIUM%VZ&8ReosPLDN3lWH(_wI}s@602E-C^YS`b%aDb7Kfni~TF(h(CG$wBno+2cw1X94j++YM1J~25$M3(m( o#2}EI$hXN&BH4n6Kx_uMRiYV_|A~k*Hcb{2)nq(0*+J9+07O*0umAu6 delta 2066 zcmcbm-JmVdz;u9-fq_A&ffq!xR815xtiQql0TK`jMzVm!Sr`}?G+-hSnl*%hfq|KU zfx!gAhmow87#J9s7#J8_U?LEjtqCd~0pY_)b}I<0o*@CkfRWsG3=9k)R~EoTAT;+Z zsKqr9K8)mnF($zn5L)OLgl1R+rJAjKwyyv5H{n4%~_0s zjGKFz{Fyi!m_Z@PZZ-K8iz}nmWCK+&fH+sq~B!TqzB`HX~qUiFb#Dl+mQwqFrTTxXz~O$ z6&`N2#uSKC*~=#Pu`4sqo4ko#Uy=i?h@n9UOfxr_LDhVk{EOXDw+LbgM-f;Sri!t_ zxB=`Lj-&>O2K@#pkSs^ktIkDr3~-GERB*MG#r23s@V>A!c(S7{GA~$`=hL5O4B4oBWSQmRAa)o>yqH2Cuqg z3s^mCgAgP_7#N^@;Yq?`BD^IHybb%oB3#gb@7H z)?flLh0g`7hjp?DpE@J=WE(zNMy|Q7?P~m8jPC4z^d3GdO)T?`9@8U`~yw53=H)! zM}rkGHyAa12D6}Wf7=X__jf!p8pcq zL?)=cf@NSXXTxVm4DoN8{DnW$m=h8j0#Oi60#RU9@c0pMz!D=91Z0(28-&3Ir!|#9 zoFm8s*2xKrS%FEDF9?`IMcEpJAhrsen=B@%n$8A|UB(8Zh9zKq>$%V(lnYcif%U*66zqMMCP=Vi#HSGP@yQJJHYYU385=Ao?-Jr+ z65KZVgpdl8(4)!kgfv8i9$<|LiOCwG5<i8=rPs^zK) diff --git a/artifacts/mods/gl_partycontrol.ssl b/artifacts/mods/gl_partycontrol.ssl index 09dcd535..84435f20 100644 --- a/artifacts/mods/gl_partycontrol.ssl +++ b/artifacts/mods/gl_partycontrol.ssl @@ -37,7 +37,7 @@ procedure SetGlobalVar_Handler; variable controlMode, - pidList, perksList, + pidList, perksList, addedPerkLevels, lightInt, lightDist, npcControl, displayName, displayNameColor, isShowTag, inControl := false, @@ -61,7 +61,7 @@ procedure CombatTurn_Handler begin variable status := get_sfall_arg, critter := get_sfall_arg, - pid, perkID, level; + pid, i, perkID, level; DEBUGMSG("Combat Turn: " + status + ", by " + obj_name(critter) + "/" + critter + ", arg3: " + get_sfall_arg) @@ -99,9 +99,14 @@ procedure CombatTurn_Handler begin lightInt := get_object_data(critter, OBJ_DATA_LIGHT_INTENSITY); // set perks (only work with 4.1.8+) - foreach (perkID in perksList) begin + foreach (i: perkID in perksList) begin + addedPerkLevels[i] := 0; + level := has_trait(TRAIT_PERK, real_dude_obj, perkID); - if (level) then critter_add_trait(critter, TRAIT_PERK, perkID, level); + if (level) then begin + addedPerkLevels[i] := level; + critter_add_trait(critter, TRAIT_PERK, perkID, level); + end end // special handling if dude has Jinxed trait/perk if (has_trait(TRAIT_TRAIT, real_dude_obj, TRAIT_jinxed) or has_trait(TRAIT_PERK, real_dude_obj, PERK_jinxed_perk)) then begin @@ -142,8 +147,8 @@ procedure CombatTurn_Handler begin // remove perks before switching control (only work with 4.1.8+) if (dude_obj != real_dude_obj) then begin DEBUGMSG("Remove perks after NPC control.") - foreach (perkID in perksList) begin - level := has_trait(TRAIT_PERK, real_dude_obj, perkID); + foreach (i: perkID in perksList) begin + level := addedPerkLevels[i]; //has_trait(TRAIT_PERK, real_dude_obj, perkID); if (level) then critter_rm_trait(critter, TRAIT_PERK, perkID, level); end // special handling for Jinxed @@ -227,9 +232,6 @@ procedure start begin displayNameColor := GetConfig("CombatControl", "DisplayNameColor", 0); end - set_perk_ranks(PERK_gecko_skinning_perk, 1); - set_perk_level(PERK_gecko_skinning_perk, 999); // prevent it from appearing in the perk selection window - pidList := GetConfigListInt("CombatControl", "PIDList"); if (len_array(pidList) > 0) then fix_array(pidList); @@ -239,6 +241,8 @@ procedure start begin perksList := GetConfigListInt("CombatControl", "PerksList"); fix_array(perksList); + addedPerkLevels := create_array_list(len_array(perksList)); + register_hook_proc(HOOK_COMBATTURN, CombatTurn_Handler); register_hook_proc(HOOK_GAMEMODECHANGE, GameModeChange_Handler); register_hook_proc(HOOK_INVENTORYMOVE, InventoryMove_Handler); diff --git a/artifacts/mods/main.h b/artifacts/mods/main.h index ad8a92dc..73c24758 100644 --- a/artifacts/mods/main.h +++ b/artifacts/mods/main.h @@ -18,45 +18,46 @@ variable translationIni; // Gets the integer value from the specified ini procedure GetIniConfig(variable section, variable key, variable def, variable inifile) begin variable val := get_ini_setting(inifile + "|" + section + "|" + key); - if val == -1 then val := def; + if (val == -1) then return def; return val; end // Gets the string value from the specified ini procedure GetIniConfigStr(variable section, variable key, variable def, variable inifile) begin variable val := get_ini_string(inifile + "|" + section + "|" + key); - if val == -1 orElse val == "" then val := def; + if (val == -1 orElse val == "") then return def; return val; end // Gets the integer value from sfall-mods.ini procedure GetConfig(variable section, variable key, variable def) begin variable val := get_ini_setting(ini + "|" + section + "|" + key); - if val == -1 then val := def; + if (val == -1) then return def; return val; end // Gets the string value from sfall-mods.ini procedure GetConfigStr(variable section, variable key, variable def) begin variable val := get_ini_string(ini + "|" + section + "|" + key); - if val == -1 orElse val == "" then val := def; + if (val == -1 orElse val == "") then return def; return val; end // Gets the value from sfall-mods.ini as a temp array of strings procedure GetConfigList(variable section, variable key) begin variable val := get_ini_string(ini + "|" + section + "|" + key); - if val == -1 orElse val == "" then return []; + if (val == -1 orElse val == "") then return []; return string_split(val, ","); end // Gets the value from sfall-mods.ini as a temp array of ints procedure GetConfigListInt(variable section, variable key) begin - variable arr, i, item; + variable arr, len, i, item; arr := GetConfigList(section, key); - for (i := 0; i < len_array(arr); i++) begin + len = len_array(arr); + for (i := 0; i < len; i++) begin arr[i] := atoi(arr[i]); end return arr; @@ -65,9 +66,7 @@ end // Translates given string using Translations.ini procedure Translate(variable id, variable def) begin variable str := get_ini_string(translationIni + "|Sfall|" + id); - if (str == 0 orElse (strlen(str) == 0)) then begin - str := def; - end + if (str == 0 orElse strlen(str) == 0) then return def; return str; end diff --git a/artifacts/sfall.dat b/artifacts/sfall.dat index 28537126d730128d6f3bef0a5effd9d922093667..d5e23c7421a0d5c381327ebfe04d46e6d6ecdc70 100644 GIT binary patch delta 3574 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 delta 3554 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 TGcZ^dFfklvWMD9^WMTjSK6)!} diff --git a/artifacts/sfall_ru.dat b/artifacts/sfall_ru.dat index b6a41beaa2ef26f683d6253c040f90f640106a9d..c261e0bf7d5d239120d52bcc0c3579e8066ba011 100644 GIT binary patch delta 3574 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 delta 3554 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 TGcZ^eGBF%xWMD9@VqyRQ*W@dP diff --git a/artifacts/sfall_zh.dat b/artifacts/sfall_zh.dat index cbed484f736189d906b5515d6336037fd696e73e..05f80d344495c7ca3b1324833ac77ebd55fc7606 100644 GIT binary patch delta 3574 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 TGcb4+FfklvWMFWqWMTjS2JI{6