From bf1cbced8e48a1b09fb8a7ab94ac30961d8e9f62 Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:42:18 -0400 Subject: [PATCH] Updated some CNR tools for large creatures Updated some CNR tools for large creatures. Added PRC8 journal entries. Full compile. --- _module/are/adream2.are.json | 2 +- _module/itp/itempalcus.itp.json | 33 ++++++ _module/jrl/module.jrl.json | 161 +++++++++++++++++++++++++ _module/ncs/displ_onspawn.ncs | Bin 234 -> 186 bytes _module/ncs/hc_on_acq_item.ncs | Bin 1116 -> 2397 bytes _module/ncs/hcrh_setbonusxp.ncs | Bin 338 -> 258 bytes _module/ncs/hcrh_setbrntorch.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setdmresrv.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setgivelvl.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setlvlcost.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setpktrack.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setrest.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setrezchnce.ncs | Bin 340 -> 260 bytes _module/ncs/hcrh_setsumtime.ncs | Bin 341 -> 261 bytes _module/ncs/mod_onclenter.ncs | Bin 18614 -> 18016 bytes _module/ncs/ranzisnotfree.ncs | Bin 224 -> 208 bytes _module/nss/hc_on_acq_item.nss | 68 ++++++++++- _module/nss/mod_onclenter.nss | 4 + _module/uti/cnrgemchisel002.uti.json | 101 ++++++++++++++++ _module/uti/cnrskinningblade.uti.json | 101 ++++++++++++++++ _module/uti/skinningblade.uti.json | 164 ++++++++++++++++++++++++++ 21 files changed, 629 insertions(+), 5 deletions(-) create mode 100644 _module/jrl/module.jrl.json create mode 100644 _module/uti/cnrgemchisel002.uti.json create mode 100644 _module/uti/cnrskinningblade.uti.json create mode 100644 _module/uti/skinningblade.uti.json diff --git a/_module/are/adream2.are.json b/_module/are/adream2.are.json index 29c82f87..1dcccc61 100644 --- a/_module/are/adream2.are.json +++ b/_module/are/adream2.are.json @@ -3648,7 +3648,7 @@ }, "Version": { "type": "dword", - "value": 116 + "value": 118 }, "Width": { "type": "int", diff --git a/_module/itp/itempalcus.itp.json b/_module/itp/itempalcus.itp.json index f1718802..31c1344d 100644 --- a/_module/itp/itempalcus.itp.json +++ b/_module/itp/itempalcus.itp.json @@ -47756,6 +47756,17 @@ "value": "shifterhide" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Skinning Knife" + }, + "RESREF": { + "type": "resref", + "value": "skinningblade" + } + }, { "__struct_id": 0, "NAME": { @@ -57720,6 +57731,17 @@ "value": "cnrgemchisel" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Gem Crafter's Chisel" + }, + "RESREF": { + "type": "resref", + "value": "cnrgemchisel002" + } + }, { "__struct_id": 0, "NAME": { @@ -58930,6 +58952,17 @@ "value": "cnrshovel" } }, + { + "__struct_id": 0, + "NAME": { + "type": "cexostring", + "value": "Skinning Knife" + }, + "RESREF": { + "type": "resref", + "value": "cnrskinningblade" + } + }, { "__struct_id": 0, "NAME": { diff --git a/_module/jrl/module.jrl.json b/_module/jrl/module.jrl.json new file mode 100644 index 00000000..32a6f791 --- /dev/null +++ b/_module/jrl/module.jrl.json @@ -0,0 +1,161 @@ +{ + "__data_type": "JRL ", + "Categories": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "Comment": { + "type": "cexostring", + "value": "" + }, + "EntryList": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "End": { + "type": "word", + "value": 0 + }, + "ID": { + "type": "dword", + "value": 1 + }, + "Text": { + "type": "cexolocstring", + "value": { + "0": "3e D&D Experience Chart\n\nLvl XP Needed\n01 0\n02 1000\n03 3000\n04 6000\n05 10000\n06 15000\n07 21000\n08 28000\n09 36000\n10 45000\n11 55000\n12 66000\n13 78000\n14 91000\n15 105000\n16 120000\n17 136000\n18 153000\n19 171000\n20 190000\n21 210000\n22 231000\n23 253000\n24 276000\n25 300000\n26 325000\n27 351000\n28 378000\n29 406000\n30 435000\n31 465000\n32 496000\n33 528000\n34 561000\n35 595000\n36 630000\n37 666000\n38 703000\n39 741000\n40 780000" + } + } + } + ] + }, + "Name": { + "type": "cexolocstring", + "value": { + "0": "| D&D 3e XP Chart |" + } + }, + "Picture": { + "type": "word", + "value": 65535 + }, + "Priority": { + "type": "dword", + "value": 4 + }, + "Tag": { + "type": "cexostring", + "value": "JRNL_XPCHART" + }, + "XP": { + "type": "dword", + "value": 0 + } + }, + { + "__struct_id": 1, + "Comment": { + "type": "cexostring", + "value": "" + }, + "EntryList": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "End": { + "type": "word", + "value": 0 + }, + "ID": { + "type": "dword", + "value": 1 + }, + "Text": { + "type": "cexolocstring", + "value": { + "0": "Level Adjustment Buy-off Table\n\nStarting LA / Level\n \n01 / 03\n02 / 06 09\n03 / 09 15 18\n04 / 12 21 27 30\n05 / 15 27 36\n06 / 18 33\n07 / 21 39\n08 / 24\n09 / 27\n10 / 30\n11 / 33\n12 / 36\n13 / 39\n\n(Buy-off dialog will be in the PRC menu when you qualify.)" + } + } + } + ] + }, + "Name": { + "type": "cexolocstring", + "value": { + "0": "| LA Buy-off Table |" + } + }, + "Picture": { + "type": "word", + "value": 65535 + }, + "Priority": { + "type": "dword", + "value": 4 + }, + "Tag": { + "type": "cexostring", + "value": "JRNL_LA_BUYOFF" + }, + "XP": { + "type": "dword", + "value": 0 + } + }, + { + "__struct_id": 2, + "Comment": { + "type": "cexostring", + "value": "" + }, + "EntryList": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "End": { + "type": "word", + "value": 0 + }, + "ID": { + "type": "dword", + "value": 1 + }, + "Text": { + "type": "cexolocstring", + "value": { + "0": "Visit the PRC8 Discord for ruleset information, as well as other PW servers & dozens of single player PRC8 modules.\n\nhttps://discord.gg/FW9V9RKy5U" + } + } + } + ] + }, + "Name": { + "type": "cexolocstring", + "value": { + "0": "| PRC8 Discord |" + } + }, + "Picture": { + "type": "word", + "value": 65535 + }, + "Priority": { + "type": "dword", + "value": 4 + }, + "Tag": { + "type": "cexostring", + "value": "JRNL_PRC8" + }, + "XP": { + "type": "dword", + "value": 0 + } + } + ] + } +} diff --git a/_module/ncs/displ_onspawn.ncs b/_module/ncs/displ_onspawn.ncs index 7ec5ed6f3a80a541912db7b3f9d95991a86b20df..0ef8b72c86d71edeeab05d892cec89bba1894581 100644 GIT binary patch delta 74 zcmaFGxQkKE&pB8j%uvt3iGhJ(mmH8_;80*-VFoe4q!B9v<0+9Y?cIM*w6S5b(%?NOh>~Y#L3DkW>y!cfR+&_r3Y1Z@N5JruU}{#S$Td z4@U|7ouEXwGKBmhnzpyMw?oXc1pe>phHjV{GI;0i-0F?_(!E8DzStdfnc(WR34%#G zlo*_3mp~>k!ed6qj6afggx9o02~k-)ldf!;29H82NCcJ#m5Z*IH`>J(|(lZGD zz|6P3!EFxe3n@^N0+y@#;Ua6zHQb1K+3_*Zqdh|$noICHYgH3mB0P=^%lg=daf(_L z*Plb)@RA+Y8LfuQj@u!l4vSeeW=;WfP?q*sH%-oiOW(1LpE~3ch{^1sH^X(pJVusM2&d82Su!nSWNJ@VJ#m+4U{*>2G`FxW*@_TBx-l04&8U&n% z@N(1jeb=ww^xYaue0eQfNMfQSrYT}1+M~gJZ+L_K^@gjJO4dBvVLcnne3bH1;xXlj z?!1EB{=1_#fLqzSfxO~SwozS`JtyWoQToeE>^RPB_T8C|jDu}4XM4#$jwdhwizglF z2ODB+Du(2iE31`q<kG}8$y+mC`j@+ zrFG%Fm^fL5F4sLNC!v}OqX;pqM|INzd0OtgMR6HM?*&*O6-8-IRhQzP0`4vx^S|58lX-D;Dz*QxCX zaf5}Fd920!*!C!vE2Ix2n5UcovH73G{U}ctKSsYZ;`fGf_~fmMKS$=L1dWbl8GH_) faJ-Mn_2hu?&Q?O#_R4V(@^Suwv(Fmh8$iilaJ16j delta 271 zcmcaBbcci2&pB8j%uvt3iGhJ7W+LxyC01s}|NsAgVPIipU|7M(2;%%;V3B43(tp5G ze*910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+?(rpy-T delta 188 zcmZo-y2KRd=NzmMW~gW2#K6E9B*y>*9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRIk@-X=eX diff --git a/_module/ncs/hcrh_setbrntorch.ncs b/_module/ncs/hcrh_setbrntorch.ncs index 2fc98c6b2fbcd3c813f891c5bd1ae9a7592d00c6..24880d354e0d2b2aa1c2f9d741bd76bf79e70de5 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setdmresrv.ncs b/_module/ncs/hcrh_setdmresrv.ncs index d458cfb7c81a6cf1479c84d87190fc1270411d8e..7950af50a288bf101e3856da3120cbc0c5bc1cb4 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setgivelvl.ncs b/_module/ncs/hcrh_setgivelvl.ncs index ea29c7ebf7d9778e9a2a5e45cd6d53b92e6a5c1b..a26c956c208d3abc7ae9a034d2141c670b6bdf3d 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setlvlcost.ncs b/_module/ncs/hcrh_setlvlcost.ncs index 7ae725ec0b5cf27d556d9223ca370754726c6837..20810542fc9947fb79f2cff37ee35ec3673b7473 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setpktrack.ncs b/_module/ncs/hcrh_setpktrack.ncs index f45c35a7300a0e650adefc4162f9ccf2648caae1..aa0f68192a794086e9cefcb3cf8d1edc640a3049 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setrest.ncs b/_module/ncs/hcrh_setrest.ncs index 5aa35b69cb48251598c4b8d81eab1a35dd02a04f..53b01d3fd1089215c2944d6b417d2c5dbec8cf47 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setrezchnce.ncs b/_module/ncs/hcrh_setrezchnce.ncs index 77f0c7e0dbc1e0240171726cb2a63b91d237c4f9..2604ed8d21c4ca4c3e29a2aaa074c973e2f0a436 100644 GIT binary patch delta 108 zcmcb@)WW3i=NzmMW~gW2#K6GFBF6v(910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_+SpsW2As delta 188 zcmZo+y22Fb=NzmMW~gW2#K6E9BF6v(9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRHZj;%YyS diff --git a/_module/ncs/hcrh_setsumtime.ncs b/_module/ncs/hcrh_setsumtime.ncs index 8d24ccae97a266aa5d4529a8ffcbfa7028c1322a..1313c925934e09cd2f35c68a7d0ce260fbcb1541 100644 GIT binary patch delta 108 zcmcc0)XJpq=NzmMW~gW2#K6GFD#ri>910Aq3=E$bSXdbZgHwyjQi~KaixqtGle1G( z^d<(18v-S`Je-3(N)n6GQ%hLbK$?I$%$T$ozy=6tGe|T1|NsAk0s};H;_*HJs$v%O delta 188 zcmZo=y2=#j=NzmMW~gW2#K6E9D#ri>9109fY^)3npBNY!|NsC0gMmew0Z9L0Vr5}v z5DZQ&DoZU=$ShXy$xqHsP0>SFG*MqX9!-o5sFBOVImn|Vu_!&YgoO=c4bTQNCRBx5 X3}6QcXfuFq`~Y$YL@}zmiRFC&Dy3_xrpr@m~GY?RNLRpXb-- z`#hiLeLp!trjL`HhH$gzaVg&y5`;)sioiZ*k3dC(QLr>^3wKs+3bj-tyy`^R#zCVX ztQJI~D9S^DxsWr2igwTSHxEYg4!;xNSR2vfre4 zSFisQ6vu;to$MQG+0ht@{NFeW7Gp;#!H5%Ag0`VF(d0?xG(Q6uaoKLG+--wSFAT)E z;AwJ*nicq&WW*tjKUBLt7cyu%%{~QEULthRbrrr#NcIc#(z2|#a?H>cg_R<L8q5ZfAs zHM)8C_T{NkV6#sXv7hal8s^oGNqb>ZOrz2{SP;t|k;Zr?L5*4JRw2|IY8+&NIXqm_9rAExc z#Ky&FeAVfd2V$BD4SWgTnR961T~N$E8t4VdQc437^jb=&|2~|xNYsBBCM{{ye;O7n z9_k-}RI8WzcR-ajoBH#i&-xtPwH|dI(w%{kWt!@v^4qo{lK5|fut4SN*lt3G;e)t3 z(yE$=BEgX@>>rzs)xfn7%y_dM_E4meRL_JB8P83 z4~tp-kd>2Brj}?YPA}s*$LGX+v`2=)#0%QeF!Y!$nHhL0zmM#L7ZY5R*216p4e@$aGLIY3z3yn~ zsBU0v!x_y5iV(pxC$T)E#tafc1LfTk=fLe-=@loJ?c{)JSL;`+4Vig~RY`$<-~OEW zu4G0`d8irI;^7OhO1HkXGyM=J1!1d{6w)3!q{iv}r*%v}R_&J2a(WpvQ=n(@jHhC$ zQ-~P?>v}4f@V}QvXzWrji)|(_U7qyl`DKWf5v0XU~DoU}Q^EZ?{TSRag;)*0ML$BdSOX z0h|9)?(cqmzo$&9PItSU)oCSVE;bK^FDd{?FQXTm)n_s%X1pzr# z3H18BTwYa6NCCXE={52mxFQ?LJ!p%h#jBgamzfj3eiGh^?2cnIu@cYjgBL!&vbeY? Jr&hm7{suy;ZbAS6 delta 2577 zcmZ`*eQZ-z6uXFD^>@xa zpTBc%uN|VN4^wZbzExROTH;(uh&OBuQ5^5qg})3U%=)k%d)T7nIsl!9%Ouf9FVMC0m5>Ju`9l z_HeU*O|V4?1Vc^1fLCEAv^%UFjK2kk6K2B^ivvER&oJvUaI?8dy78Nuj{PlIo}3Ds zSSBlM$HyL4MUp`xQbscPxyVu-TG(ft&YyhTijFXhpC^gi^bQqs*%~bM^KQYOOVW zDcY|du`H#mwgmd)3Rx|K1go3*`k>ZY#e7F$x3!Y_*1@ONQs&EtA!`ov$q;W-*unuQ zw&k*gXQ9PbATNBKnP87?hfWX^OxSj&9^g?;XUuEGxxAGL74^0F=jqJ*#pE6nR91@< z)=+v9_9r%*FN#wN^x9{^Xkr%q5fbfNX(v2q-%iK)XDZl|_F9gLG}Er5*3$`Q^`oRB zI`d-m5RvyOFV!%`0PiHPqHXxJ(NUAd%-n^o z;SYry+Z+7#E1H&RtkM+AP!U{ttK&w7L@?Bb_K)Q4pf1(=U>?oLLY|bk_~74ajiiph z9*15}IdtdSvxiWpL2yY(Zf-ITJ{-&MV$2N51#_L6-}Tg)%kvr&JkWy8m(9X`d=8p= zTTlaerSA%&ModCqic{?_c#*Mx26zA|Fgn-jU}k2Xrs3q|jci;k1IZ3(E~-nJGsSY< z98DMUci$_bk+s3&5}{w;hxva|{3Pv$Px8`bww5!*UlMXf{A(L z4R^$IyT=fss5CVwTu@3;z(mdYEQ+Oxm7xbU0k0z$Sfd2nGyz6AcwQ^?^~e}^aA#gP zQQ`n~{+7Z&MV8G8V6N$yIIj3$OE3-IOh}~T&`X`_g!>?~>pkO!xSdvw<3s+0 z+%stKu7H`BV)WbpM;H3bo}x8sxO@X;w|7PO0OvAIFj77netYN?&4*(Z8L6EtiCdeD zxv$`CMS+{i;*CCe&b&Dp+Ql_YW?&uf=*{N050CQ~EzTYm2T2P~HRAEcNXis2>Ee1X3fD2YZTNUQwdf%am8lO8W7-QTb@ym?~>TGu8?n;sac ze8tX^qVSbkm@ikI@!YaR)8We3SkMYVhb!ZJf9uOm{Jv@vv?Cj^j)%OPB#uV#?y48=~NRCeR(gl$!O&6(MW_$-krFz-P>pvWm(Ub}f?4{fPp#s@{ zf5Qo*>#6O7+l4QYu^72_!*c#aHKo1NELuWoJ+#!nDyd9@f%-Z+3b}!tB#pXav5Iv2Kg6=N1va>}@uo`Wu8&V%n3$L_ L#-@H7c!T~6=JzqN diff --git a/_module/ncs/ranzisnotfree.ncs b/_module/ncs/ranzisnotfree.ncs index 1d6c7e13ec06377c2baa53ca8bed89d7cd4f7d62..2c713f446d1cb2ed6f7dbe2356ed556cd1a80161 100644 GIT binary patch delta 39 scmaFBc!5#g&pB8j%uvt3iGhLPf*g=w;80*-Vq;=sVFt1pC+cqm0HF2;oB#j- delta 55 zcmcb>_<&L0&pB8j%uvt3iGhLPfgF%v;80*-Vgo{E7G@xik&*HL|NlQ2Sfm+%^q-0H F8v#ZC4!{5a diff --git a/_module/nss/hc_on_acq_item.nss b/_module/nss/hc_on_acq_item.nss index 294a5b61..e3364ba2 100644 --- a/_module/nss/hc_on_acq_item.nss +++ b/_module/nss/hc_on_acq_item.nss @@ -9,12 +9,72 @@ void main() { - object oAcquired=GetModuleItemAcquired(); - object oPlayer=GetItemPossessor(oAcquired); + object oAcquired = GetModuleItemAcquired(); + object oPlayer = GetItemPossessor(oAcquired); + + int iSize = GetCreatureSize(oPlayer); - string sTag=GetTag(oAcquired); + string sTag = GetTag(oAcquired); + string sResref = GetResRef(oAcquired); - /* Tensors sword */ + if (sTag == "cnrGemChisel") + { + if (sResref == "cnrgemchisel" && iSize > CREATURE_SIZE_MEDIUM) + { + SendMessageToPC(oPlayer, "Large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("cnrgemchisel002", oPlayer, 1); + return; + } + + if (sResref == "cnrgemchisel002" && iSize < CREATURE_SIZE_LARGE) + { + SendMessageToPC(oPlayer, "Non-large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("cnrgemchisel", oPlayer, 1); + return; + } + } + + if (sTag == "cnrSkinningKnife") + { + if (sResref == "cnrskinningknife" && iSize > CREATURE_SIZE_MEDIUM) + { + SendMessageToPC(oPlayer, "Large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("cnrskinningblade", oPlayer, 1); + return; + } + + if (sResref == "cnrskinningblade" && iSize < CREATURE_SIZE_LARGE) + { + SendMessageToPC(oPlayer, "Non-large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("cnrskinningknife", oPlayer, 1); + return; + } + } + + if (sTag == "hc_skinning") + { + if (sResref == "skinningknife" && iSize > CREATURE_SIZE_MEDIUM) + { + SendMessageToPC(oPlayer, "Large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("skinningblade", oPlayer, 1); + return; + } + + if (sResref == "skinningblade" && iSize < CREATURE_SIZE_LARGE) + { + SendMessageToPC(oPlayer, "Non-large creature detected."); + DestroyObject (oAcquired); + CreateItemOnObject("skinningknife", oPlayer, 1); + return; + } + } + + /* Tensors sword */ if (sTag == "NW_WSWMLS013") { SendMessageToPC (oPlayer, "The sword crumbles to dust in your hands.."); diff --git a/_module/nss/mod_onclenter.nss b/_module/nss/mod_onclenter.nss index d9d0c9df..45a98ca3 100644 --- a/_module/nss/mod_onclenter.nss +++ b/_module/nss/mod_onclenter.nss @@ -28,6 +28,10 @@ void main() object oPC = GetEnteringObject(); int bDM = GetIsDM(oPC); int bTeam = dev_IsTeamMember(oPC); + + AddJournalQuestEntry("JRNL_XPCHART", 1, oPC, FALSE, FALSE, FALSE); + AddJournalQuestEntry("JRNL_LA_BUYOFF", 1, oPC, FALSE, FALSE, FALSE); + AddJournalQuestEntry("JRNL_PRC8", 1, oPC, FALSE, FALSE, FALSE); if (!bDM && !bTeam && !cheat_Validate(oPC)) { diff --git a/_module/uti/cnrgemchisel002.uti.json b/_module/uti/cnrgemchisel002.uti.json new file mode 100644 index 00000000..7023f331 --- /dev/null +++ b/_module/uti/cnrgemchisel002.uti.json @@ -0,0 +1,101 @@ +{ + "__data_type": "UTI ", + "AddCost": { + "type": "dword", + "value": 30 + }, + "BaseItem": { + "type": "int", + "value": 0 + }, + "Charges": { + "type": "byte", + "value": 0 + }, + "Comment": { + "type": "cexostring", + "value": "" + }, + "Cost": { + "type": "dword", + "value": 50 + }, + "Cursed": { + "type": "byte", + "value": 0 + }, + "DescIdentified": { + "type": "cexolocstring", + "value": { + "0": "A gem cutter's cutting and chiseling tool." + } + }, + "Description": { + "type": "cexolocstring", + "value": { + "0": "A gem crafter's cutting and chiseling tool." + } + }, + "Identified": { + "type": "byte", + "value": 1 + }, + "LocalizedName": { + "type": "cexolocstring", + "value": { + "0": "Gem Crafter's Chisel" + } + }, + "ModelPart1": { + "type": "byte", + "value": 31 + }, + "ModelPart2": { + "type": "byte", + "value": 61 + }, + "ModelPart3": { + "type": "byte", + "value": 61 + }, + "PaletteID": { + "type": "byte", + "value": 4 + }, + "Plot": { + "type": "byte", + "value": 0 + }, + "PropertiesList": { + "type": "list", + "value": [] + }, + "StackSize": { + "type": "word", + "value": 1 + }, + "Stolen": { + "type": "byte", + "value": 0 + }, + "Tag": { + "type": "cexostring", + "value": "cnrGemChisel" + }, + "TemplateResRef": { + "type": "resref", + "value": "cnrgemchisel002" + }, + "xModelPart1": { + "type": "word", + "value": 31 + }, + "xModelPart2": { + "type": "word", + "value": 61 + }, + "xModelPart3": { + "type": "word", + "value": 61 + } +} diff --git a/_module/uti/cnrskinningblade.uti.json b/_module/uti/cnrskinningblade.uti.json new file mode 100644 index 00000000..c0a23e54 --- /dev/null +++ b/_module/uti/cnrskinningblade.uti.json @@ -0,0 +1,101 @@ +{ + "__data_type": "UTI ", + "AddCost": { + "type": "dword", + "value": 0 + }, + "BaseItem": { + "type": "int", + "value": 0 + }, + "Charges": { + "type": "byte", + "value": 0 + }, + "Comment": { + "type": "cexostring", + "value": "" + }, + "Cost": { + "type": "dword", + "value": 4 + }, + "Cursed": { + "type": "byte", + "value": 0 + }, + "DescIdentified": { + "type": "cexolocstring", + "value": { + "0": "More of a tool than a weapon, the skinning knife is a handy item to carry." + } + }, + "Description": { + "type": "cexolocstring", + "value": { + "0": "More of a tool than a weapon, the skinning knife is a handy item to carry." + } + }, + "Identified": { + "type": "byte", + "value": 1 + }, + "LocalizedName": { + "type": "cexolocstring", + "value": { + "0": "Skinning Knife" + } + }, + "ModelPart1": { + "type": "byte", + "value": 63 + }, + "ModelPart2": { + "type": "byte", + "value": 23 + }, + "ModelPart3": { + "type": "byte", + "value": 43 + }, + "PaletteID": { + "type": "byte", + "value": 4 + }, + "Plot": { + "type": "byte", + "value": 0 + }, + "PropertiesList": { + "type": "list", + "value": [] + }, + "StackSize": { + "type": "word", + "value": 1 + }, + "Stolen": { + "type": "byte", + "value": 1 + }, + "Tag": { + "type": "cexostring", + "value": "cnrSkinningKnife" + }, + "TemplateResRef": { + "type": "resref", + "value": "cnrskinningblade" + }, + "xModelPart1": { + "type": "word", + "value": 63 + }, + "xModelPart2": { + "type": "word", + "value": 23 + }, + "xModelPart3": { + "type": "word", + "value": 43 + } +} diff --git a/_module/uti/skinningblade.uti.json b/_module/uti/skinningblade.uti.json new file mode 100644 index 00000000..0ae635f8 --- /dev/null +++ b/_module/uti/skinningblade.uti.json @@ -0,0 +1,164 @@ +{ + "__data_type": "UTI ", + "AddCost": { + "type": "dword", + "value": 0 + }, + "BaseItem": { + "type": "int", + "value": 0 + }, + "Charges": { + "type": "byte", + "value": 0 + }, + "Comment": { + "type": "cexostring", + "value": "" + }, + "Cost": { + "type": "dword", + "value": 26 + }, + "Cursed": { + "type": "byte", + "value": 0 + }, + "DescIdentified": { + "type": "cexolocstring", + "value": { + "0": "This is a skinning knife. It is not very useful in combat but when used on a corpse can produce hide and meat. Rangers also use it to hunt." + } + }, + "Description": { + "type": "cexolocstring", + "value": { + "0": "" + } + }, + "Identified": { + "type": "byte", + "value": 1 + }, + "LocalizedName": { + "type": "cexolocstring", + "value": { + "0": "Skinning Knife" + } + }, + "ModelPart1": { + "type": "byte", + "value": 22 + }, + "ModelPart2": { + "type": "byte", + "value": 12 + }, + "ModelPart3": { + "type": "byte", + "value": 22 + }, + "PaletteID": { + "type": "byte", + "value": 0 + }, + "Plot": { + "type": "byte", + "value": 0 + }, + "PropertiesList": { + "type": "list", + "value": [ + { + "__struct_id": 0, + "ChanceAppear": { + "type": "byte", + "value": 100 + }, + "CostTable": { + "type": "byte", + "value": 20 + }, + "CostValue": { + "type": "word", + "value": 1 + }, + "Param1": { + "type": "byte", + "value": 255 + }, + "Param1Value": { + "type": "byte", + "value": 0 + }, + "PropertyName": { + "type": "word", + "value": 10 + }, + "Subtype": { + "type": "word", + "value": 0 + } + }, + { + "__struct_id": 0, + "ChanceAppear": { + "type": "byte", + "value": 100 + }, + "CostTable": { + "type": "byte", + "value": 3 + }, + "CostValue": { + "type": "word", + "value": 13 + }, + "Param1": { + "type": "byte", + "value": 255 + }, + "Param1Value": { + "type": "byte", + "value": 0 + }, + "PropertyName": { + "type": "word", + "value": 15 + }, + "Subtype": { + "type": "word", + "value": 329 + } + } + ] + }, + "StackSize": { + "type": "word", + "value": 1 + }, + "Stolen": { + "type": "byte", + "value": 0 + }, + "Tag": { + "type": "cexostring", + "value": "hc_skinning" + }, + "TemplateResRef": { + "type": "resref", + "value": "skinningblade" + }, + "xModelPart1": { + "type": "word", + "value": 22 + }, + "xModelPart2": { + "type": "word", + "value": 12 + }, + "xModelPart3": { + "type": "word", + "value": 22 + } +}