From 6314553ba124b1818a0f6ae71eb375cca9f83a86 Mon Sep 17 00:00:00 2001 From: phobos2077 Date: Mon, 10 Jul 2023 21:26:38 +0200 Subject: [PATCH] Recompile all scripts and add changelogs --- docs/ecco_changelog.txt | 28 ++ docs/ecco_changelog_ru.txt | 29 ++ extra/{ => bin}/compile.cmd | 0 extra/bin/compile_wcc.cmd | 2 +- extra/compile_all.cmd | 2 +- ...decompilescripts.cmd => decompile_all.cmd} | 1 - extra/dump_all.cmd | 14 + root/data/scripts/ecrobber.int | Bin 23030 -> 23056 bytes root/data/scripts/gl_expforkill_mod.int | Bin 3910 -> 4524 bytes root/data/scripts/gl_pbs_barter.int | Bin 7848 -> 7884 bytes root/data/scripts/gl_pbs_craft.int | Bin 24952 -> 24674 bytes root/data/scripts/gl_pbs_damage_mod.int | Bin 12482 -> 13096 bytes root/data/scripts/gl_pbs_sneak_knockout.int | Bin 1488 -> 1300 bytes root/data/scripts/gl_spray_settings.int | Bin 3738 -> 3696 bytes root/data/scripts/gl_throwing_bonus.int | Bin 2990 -> 2990 bytes .../scripts/gl_update_map_objs_from_proto.int | Bin 2230 -> 2242 bytes root/data/scripts/mcbaltha.int | Bin 19776 -> 19802 bytes root/data/scripts/nceldrid.int | Bin 25992 -> 26018 bytes root/data/scripts/rcascort.int | Bin 21968 -> 21994 bytes root/data/scripts/schenry.int | Bin 15760 -> 15786 bytes scripts_src/_pbs_craft/crafting.h | 12 +- scripts_src/_pbs_headers/ecco.h | 3 +- scripts_src/_pbs_main/gl_expforkill_mod.ssl | 4 +- scripts_src/_pbs_main/gl_pbs_barter.ssl | 2 +- scripts_src/_pbs_main/gl_pbs_damage_mod.ssl | 5 +- .../tests/_export_array_syntax_bug.ssl | 9 + .../_pbs_main/tests/_if_after_foreach_bug.ssl | 11 +- .../_pbs_main/tests/_leftover_strings_bug.ssl | 23 ++ .../_pbs_main/tests/_string_call_bug.ssl | 27 +- .../_pbs_main/tests/arrays_testcase.ssl | 6 + .../_pbs_main/tests/gl_cheat_enemyspawner.ssl | 35 +- scripts_src/_pbs_main/tests/gl_test.ssl | 368 +++++------------- scripts_src/_pbs_main/tests/gl_test_old.ssl | 298 ++++++++++++++ scripts_src/abbey/abdeathc.ssl | 2 +- .../{_custom_door.ssl => _custom_door.h} | 5 +- scripts_src/newreno/nibasdor.ssl | 4 +- 36 files changed, 586 insertions(+), 304 deletions(-) rename extra/{ => bin}/compile.cmd (100%) rename extra/{decompilescripts.cmd => decompile_all.cmd} (98%) create mode 100644 extra/dump_all.cmd create mode 100644 scripts_src/_pbs_main/tests/_export_array_syntax_bug.ssl create mode 100644 scripts_src/_pbs_main/tests/_leftover_strings_bug.ssl create mode 100644 scripts_src/_pbs_main/tests/gl_test_old.ssl rename scripts_src/generic/{_custom_door.ssl => _custom_door.h} (99%) diff --git a/docs/ecco_changelog.txt b/docs/ecco_changelog.txt index 8c91a7e..ab7c37a 100644 --- a/docs/ecco_changelog.txt +++ b/docs/ecco_changelog.txt @@ -1,5 +1,33 @@ -=== CHANGELOG ===- +v0.9.2 +> Traps: +- new Bear Trap with mechanic for holding critter down for several turns +- remade internal mechanics for simpler scripts and more robust triggering (esp. out of combat) +- replaced linear skill-based damage curve for Spike Traps with critical hit chance (with cripple effects), based on modified vanilla critical roll formula - for ALL traps +- externalized all config to ini file (data/config folder) to allow traps to be easily ported to any game/mod +- slightly buffed explosives damage +- tweaked Modoc Brahmin quest to add delay before dogs attack (allows to prepare traps) + +> Balance: +- replaced most of the EcCo maps changes with a new "map tweaker" script +- add varius crafting components and remove excessive loot in and around Den & Modoc +- slightly tweaked Tubby & friends to pose more of a threat +- increased frequency for some AI types to use bursts +- slight reduction to town demand multipliers +- removed all changes to Trapper script (Random Encounter) to allow buying and selling pelts with a profit +- various balance tweaks to crafting recipes +- add crafting components and a few new items to random encounter containers +- Vegeir: replaced Assault Rifle reward with Hunting Rifle + +> Other: +- fixed empty Jo's shop inventory +- changed crafting hotkey back to Ctrl+C (to avoid conflict with party_orders mod) +- better Fix Boy button art +- fixed Geckos and Rats being attracted to food from across the map +- inventory AP cost is also applied when using certain items (such as explosives) + + v0.9.1 - fixed several broken global scripts - fixed several bugs with crafting UI diff --git a/docs/ecco_changelog_ru.txt b/docs/ecco_changelog_ru.txt index 9dc41ca..c614669 100644 --- a/docs/ecco_changelog_ru.txt +++ b/docs/ecco_changelog_ru.txt @@ -1,5 +1,34 @@ -=== СПИСОК ИЗМЕНЕНИЙ ===- +v0.9.2 +> Ловушки: +- новый тип ловушки - капкан, способный удерживать противника в течении нескольких ходов +- переделана внутренняя механика системы для упрощения скриптов и более надёжного срабатывания (особенно вне боя) +- замененена линейное повышение урона от навыка на шанс крит. урона (в т.ч. поврежд. конечностей) на основе изменённой оригинальной формулы критов +- вынесены все настройки в ini-файл для простого переноса системы в другие моды +- немного повышен урон взрывчатки +- в квесте по защите браминов от собак в Модоке добавлена задержка для возможности подготовить ловушки + +> Баланс: +- заменена большая часть изменённых модом карт на новый скрипт "хирургических правок" +- добавлены разные компоненты для крафта и удален лут в локациях вокруг Дена и Модока +- немного усилен Тубби и его товарищи +- повышена вероятность очереди для некоторых типов ИИ +- немного снижены множители спроса на шкуры в городах +- убраны все изменения в скрипт Трэппера (случ. встреча) чтобы можно было заработать на перепродаже шкур +- балансные правки некоторых рецептов +- добавлены компоненты крафта в контейнеры в случайные встречи +- заменёна Штурмовая Винтовка на Охотничью в награду за квест в Модоке + +> Прочее: +- исправлен пустой инвентарь Джо +- возвращёно сочетание клавиш Ctrl+C для крафта +- добавлено несколько недостающих строк в глобалке и квестах +- улучшен вид кнопка крафта +- исправлены Гэкко и крысы прибегающие за едой через всю карту +- добавлена стоимость ОД использования взрывчатки в бою + + v0.9.1 - исправлено несколько сломаных скриптов - исправлено несколько багов с интерфейсом ремесла diff --git a/extra/compile.cmd b/extra/bin/compile.cmd similarity index 100% rename from extra/compile.cmd rename to extra/bin/compile.cmd diff --git a/extra/bin/compile_wcc.cmd b/extra/bin/compile_wcc.cmd index bd7fab8..e030c71 100644 --- a/extra/bin/compile_wcc.cmd +++ b/extra/bin/compile_wcc.cmd @@ -7,4 +7,4 @@ wcc386.exe %1 -plw=0 -fo="%~nx1.i" -w4 -wcd123 -wcd138 compile.exe -q -l -O2 -s "%~nx1.i" -o %3 SET compileErr=%ERRORLEVEL% del "%~nx1.i" -exit %compileErr% +exit /B %compileErr% diff --git a/extra/compile_all.cmd b/extra/compile_all.cmd index c5ca567..67bafe6 100644 --- a/extra/compile_all.cmd +++ b/extra/compile_all.cmd @@ -15,7 +15,7 @@ SET compile=%root%\extra\bin\compile.exe cd /d "%root%/scripts_src" for /r %%i in (*.ssl) do ( - echo %%~dpi | findstr /v /i "\\tests\\ \\wip\\" >nul && ( + echo %%~dpi | findstr /v /i "\\tests\\ \\wip\\ zilocker" >nul && ( cd /d "%%~dpi" "%compile%" -l -O2 -p -s -q -n "%%~nxi" -o "%output%/%%~ni.int" ) diff --git a/extra/decompilescripts.cmd b/extra/decompile_all.cmd similarity index 98% rename from extra/decompilescripts.cmd rename to extra/decompile_all.cmd index 7bddb0f..9445cbd 100644 --- a/extra/decompilescripts.cmd +++ b/extra/decompile_all.cmd @@ -14,4 +14,3 @@ for /f "tokens=* delims=" %%I in ('dir *.int /b') do ( echo Done! pause -cls \ No newline at end of file diff --git a/extra/dump_all.cmd b/extra/dump_all.cmd new file mode 100644 index 0000000..44dd903 --- /dev/null +++ b/extra/dump_all.cmd @@ -0,0 +1,14 @@ +@ECHO OFF + +set int2ssl=%CD%\bin\int2ssl.exe + +cd ..\root\data\scripts +mkdir _dump + +for /f "tokens=* delims=" %%I in ('dir *.int /b') do ( + %int2ssl% -d "%%I" + move /Y %%~nI.dump _dump\ +) + +echo Done! +pause diff --git a/root/data/scripts/ecrobber.int b/root/data/scripts/ecrobber.int index d025cf56c790412273743b0359d714ba0fae2604..4ff477795f4c2ab733c32bc0b1704df5eafc1742 100644 GIT binary patch literal 23056 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 H(v1Eekq;@Z literal 23030 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 XQtv}6y`C+FPp!)nSNRzkaWndVA~Zxu diff --git a/root/data/scripts/gl_expforkill_mod.int b/root/data/scripts/gl_expforkill_mod.int index 609bfa7b126173212dfc64efa26d03384c459350..fb4e0307b5d2dffa67c28e3d55bb9c546bfefc78 100644 GIT binary patch literal 4524 zcmb^zTWcI;^qbw;+0DAQq@~2zhqY>HYi#1SYLXUON?Q;U45foXdAE-?@E| zxbGNa#vpIkj@pq(yAIpC`j?bMG`0D}u1A%oFFn?Npev0!KRqjJmIvjhDZ%?hhbZxcj zcRK#{YPZ*^*6Q^&#OGRm?{amy>9+_9I*rvc>uU=>L022iW(bWn+KpuYt=wtKSN3wpjiu(Lr&(S^08E_*@;V5S$?yNG=2Vz<2HcTs83X1&Y7 zwRW#da!d8)<=`S8)L}eZ)cyf#Kl9dN_3Z2Cs;|8|KaX}51|n0?2uM_N3R6VJ=L5eM z^^t5qb@pswlIq3m{Dq{Y7jJ_L&+p6`r9!3uBEe~()$^DNmHUp>-G7r{2adqhrzqbr zJq;C@CAa{y#NqM&)VBmB?0)37e6PT?{de~f#u17GGcZLM4=N;SPh65Q!iloP3YT?+ z6c;HhBc&9Qm}JPkClK56Nb{W9WK{RWfbL{yC3~k5uYjvI(~1_5?PcDd8ualcc*^pn zN-z#*U%6VZcHC~6xM{+ zmqa$K1?f7OA0;k&3d*PZgm0uo8Z>_}GeQmaKVqZh8@a$zN6yA}VP6URqy67zm+gdu zG{i-?w>t;3#WdkQ;e68P9w)W0-PXA&c=cOzUi{7;7Z1kN6Y0$caCQvRES%-JrgBW^ zv0$Q`DPJ)AxeZndY;z;mYLiJ)#KaJ;Bf!(QXKN zBJmLJkA-Gykh}ja!C-fS*^TpL&kotV@vCr9U(S6gP=#l14zNG!#I<$uJ<;hVWB+nr zNH0X%24{ss96VQ(kdkRVv;}#&r=c#I`uW7p7UU0YvViRv(gJjXE#9J*$rHre>f!(X z5n3f53LVDUns_jsHL72|lm1fpMs8AE zt#`SCihaqfP#epmFWnd)S6#(>8#Rr5e4^!}vpUtGUVLh4xIF|6W0`ZITI z+@t+3-n|mAi)8Zr2>V=QYDDH4ao!k8`##kEmF1^dS3Grs{^PonqWhPjB-*aT60tXv zG>*pBvRx~CQ{EYnyz9Rq63F|}Qv!|YsgKTRcOZ%f(vL>hqY-!H9yHn;GU6UdbNfrQ M^882%v_+@;2XBeQqW}N^ literal 3910 zcmbsrO=uit^qbw;%{JNHEZZV$4P}irv^6GmQ?N-(D?$ol(gvwP@Mk;O-E7wG?ku|- zX|c-NIY()C)uTxmM3POXZN+ile6uXGlj4pOHtH=0c!$~W4La;woU*RFKRt@UOfDG0af zG@I_~D#~-Zh|Fm^gR8YsYO3W{HJ4IZw_U9{{k8I%>t5FU6}PqG^s7$Gsn-NqXf^6x zr(Y{;?OJHR(d#!VJP>CXs@o+cXrE>+EV|XkYNJ*yYHSe+ibz4yidv725|Doy{g@<@i&r}} z(s^LA*mwJm4%RuhYtY%wN{_uD=hg8=_ADS@yVonOI6YMAwpnk*U2pe$BsW*9RNQws zNK+VB)P4=M&%d=)K6l}b^6RfHETCQ4NLI2Y`jU~ffhik>1=pzteIy%DosKI^QkSSF ze<7~-GiSht7j~g6c`p%#4fMAkFg=tuEUnL5CfI@*n7*OAC@It>m?bz1vxJEY|0hC^ z{77v>30{Wdv{qUs;w&hM)EM)qxa`EBL^7WenT7-L-ZaccG_4wGMw7sEsBxOsD3|1o zg*mkaLd&*WY)AYK*cxwtYq-4&w0Z<5wj!WVP(Np@LaXB5fSmz%y@H8BQ zqmYI%`j2g|+~lQ@XIK?}rcJD*3Ki}VtyFaq*aIJL=nS8syG>jsy4tQlEd_1VbVG`z zCVvlc>3o@b(d&R`K`w<_qI-x7P(LmXYKQJ;f2~hFs$le!yIMT4t_$AyZR$w;9{Nc< z$Qw^Q?jQx&_t8D_;x1v09OZi~n4wJ_8=4?fnld%Xu}U3^O7k_Dm??-@kvc5dW530R z)cYg}Gbk2X!e??HfJKMS=d4He;0$0bG+T@>QkMyiUg{6X+_cVuQv4;V802A&Rtc%G zxW>RK!r3B~ai@h6c>)q>He-eo#F3OtnMfwl##3IM_QcbD-w9L_9VIy7XN7RqbwlAL zXu`Zg-(~T~)U!3PW#V+Ub_DZ*-;-u4UGr%I`4DQ5J>7#m!)^!$qXM&oi)7Ces(J9U zP*9x?F9}qFXY^`#0tzq<2Yu`vTG1&)`{((VsC#I@RbdeY-y!3W@OdBGPZ10562Ip*+MA)j)I+*pY~8RdWh-;Sj$GQp<2kD^+w)u} z>4NE?$efUqPsdU7`g20&$HL&P`ZY&&F+x*APZ9Radr|oJQ+g4B*i`dj>9uEWIOSj zX=-MMv7futK$1!LQFwG8vv)?n<@X3_N-xWOfV=fJ?`FoOvV3jgWn%Zf%DgwInw(=! z1GTSZWWIt7#qAgR{w1CJNd5v_c%vKq=AFEW9HGe0gYyN&2^IG*xm~L`OHWN6v{B)7XAf!@K757 diff --git a/root/data/scripts/gl_pbs_barter.int b/root/data/scripts/gl_pbs_barter.int index 71cf2422f4e2163fd468a854c1abe998d6a35785..b36045a22329c59a0eebebd0bc5a8c1d59b1b6f7 100644 GIT binary patch delta 1144 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 delta 6717 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 diff --git a/root/data/scripts/gl_pbs_damage_mod.int b/root/data/scripts/gl_pbs_damage_mod.int index 529e2e6278b6f2e347cf7c6e0f65e1fc956deda4..1f153f4cb41506dd23727c21008cdc754aab536f 100644 GIT binary patch literal 13096 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 a4FBP&A;p5J#J+5Xbd=%O&&Ri(y#K#r?q{+9 delta 4169 zcmbtXZ)jB66@Tw$l1(Nvaq^P+KY5uMU*`YJ8)wsWGNeneR^08Hiii~n(PU$GDXFB^ zU91hs&3x#GvPkMF`5@aREh0gdBFVCdEjq{|i-;^`@q-_NNGPop2_hofCHCHP@0-j_ zMG76ryYKw&`E!5go_pTS%GAwq7bO){Q520j`PjPtJJ+uHJq+MKpBSuX8^^hF%0k50 zzQx8S_E)UOoh?!xuE$;bq&!xSYck%va<+b=t0d*~^>|N4$}0`{Nhx2i$9o@3`CdI9 zo?|j6_5$(w>TKj7dv&lmi;0|xFR_<57#^ys;!BcefG|8)kEd=*e7GJ@mxZhzs>NCS z^yds zI`+%crx?}uPnq>1m$F**#>LAcW4o>!#{ zRRnJPg4(#A{c}sZ{1bfJqQz|wh$#5{cX((mvg2E#<~UG%JeC#Cr{yuzxEu(SAodF8rUF7-kv2l}$i6 z=OB&|nC>VN$4R)<5hIR^aJM64cRUdh9rwYuBSRcdps=Ig;mR*eip)C`u$lEFoF7pq zrf?5F56h}MDo0D6geyC;^RL&Lqk{{dA-!hW^*{JLU)67+UEHoC_4>86%0*p*tFAut z4QVv@dLwCbjoD=1em#M^)djUn-*-f>S44H%XfqAqLO0fOoqtiC_i9-F1D#& z^E0snbsWo%CE{PgsW`~mO?cM* zPEp$}R@N28$;Oqjn&fzwE>~u^R<<_l-lK-PMRB+!?Iy;nUl8wJgmB31B#0nabrQBb zKGOXyoYTEvdb7lxfH7}>xBDc9Ze=I^N5a^B6fSuS6YlG;T+^QjSAo6$jK_Nr zO&L*o!=mUd!Ene8fAD*W_Y8dD&k*k>Z1{62@7D{WCo1$!*%N<^<}D)i-c1pSsSgEo z;+ulez^uoAq$Y&4^V{G_AVhp$f+J`U-y=2zVSg|}{6}CW7$W|+;9Rg@59(-YXRE`S z^#5MeBowaTc4txp*IjqR3B{7)GpodlwAJe2bUme4Ct^9@Tea1<_v z@+7bX_d+SHCN3s4unt;JE*f|)_$dxq7j`;?uG$6vpbir~F%lfZO88?>FA2`U&7RnN z=+#AdM{Xr^C%1cDBF-wZA!nXqpf=X=4{VnP=0VJK)Xcn)8sAB8@%E}atDgK-gei+E z3Qe$O50FrK?Up{H2J|9EY>`yEtxV|z4uo~08!!_t5q%0i3x^DST4qLFXhAbYWJJFp zC3Xa$;`I^zDzrolqCbL6Btd#(a5z#Ry+!zKB;49N$CZ1hVKp+4>b-`R4d<4WB_;Oh z6C}x1(4zZ0E3%!-xZx?7iF)6BP>s$w@?JpnK;Yd!!_YMoKWT^HUP305K9IvH=+*MWPxUF$@wNfH^Krz-6OE zqRa4iV>gN3hg4sb?94+Y9)}P6e({0P|4N1(lHrajL!U(0=1b1jouk`o%lsO^d61mc zW!EH$6ksIgAGC1R<|ST|nq5`o9f>q^MASr|0?RRv&!9DjjJFv~i9z9ROm8(FaURAM zh{a9FcHios3E@|D7Sm4INoCD$ku@8wBNdLU0iaj|i5$3RAmpVBjV#h~eDY=jIdEh}ZO5&SfON~SmFGR$|3Wj1E zgX55O78Ac=XVKm6sLFd$c2?ynl(nji`tZ+G(vx_Bu6R9En_yxc66q32#$Yo2ZayV~ zvYsloJ9(<62(0UAla-w0U3if8kmO~!W)?|u6P}qy2ZoS0`xNtI(GdMlzXE3}y9yh2Q$| zT(4TV$b8dZ*tuyD~t6aj7k>5sz@qtCn7szU8V9{%~GMCwcoT(EwjF>r+WhdN> zlI$XK&Q2re>?-5DkK{CXD?dPT1^6f*Be^;FG{4)PyDeDfZo{MenPD?*ElZBpzZjB$ z858P?QvRtd9y~J%ww-5hf;9{}GB7Z(H5fHAfLW{!#tqUS7K_4U zJ{ECq5jfuo$QR>bY=8@-Km?lL0&l=N5GJfZGvO4v2_OwXBjF~n=1sO>iC_X!lUSMn Dsdz0I diff --git a/root/data/scripts/gl_spray_settings.int b/root/data/scripts/gl_spray_settings.int index fbb95fccf08f6f85235d35af3a6f3ad4eda4f00c..47ac5d3c498ba65cdfca03d7f945d6e503741204 100644 GIT binary patch literal 3696 zcmbVOOK%%h6uvXI$B#HsWFizyRZU8XXb5>YEomZY5cof^*L~cRXV%64%nqoqNu?-~G<( zUW5IErIf0`xE}4FAq$gG1s9(gd`{u>7@UU3VHT|%d2ld4`%n3rHWD65ZsYfSTAuwD z=URRtEic{``Hi%^bW7%+rsd^3GXGpnE~I`auk^!Sv%T;2yRByEHQQldsfQcE&Xs-7 z@Adox5A|Ln2)bxH)eM7=yqyEj4?}vfpmBf}Z*Ze@a=`$w%i^zx#x?J+tn9jH6vrD(ku~zSr@kvh(_F ze}Wd9&3=fc+VX8JdsnH+{Xmm%B7xno*=Z{^9qjIQ-syMA1!1*-7HGTmdj0t~y{(Py z?UygUxTO&=@F!>7je7mHx;x|Uw=f#Xb(%o+YOmAYcXb5ZX4^H65;yxF_``!9!p2txnaj`1bhCK zRyd<5129ijt&(rZ=vnC&WZ}uA{OIpY$Tm>>0uhu0EAXh6WG=xpY``K^jXv63f zZ?rYK=neWR3{YfVi z{wB(~J2@8{3qe1V}Sy5cUQW*}P)h4@xo!1Q~tWDng z2#;K>W zW%T-PTLy)k3)?IN8OpFZYXH=bj>qE$kaz8kwO zm5en>tUn_yN6~^D&E&o)PsvK=qD*ebeoy39-zCf<3r|ZGmBC*oXk8bx_@n6Ct62Jfe literal 3738 zcmbVO&2Jl35P$1kuN~L6tPr6PqG|&rqHV~B(-IODBqRbsDy2#yBtDl-yiE z>*}F^CCbhKt_Wfqw%)H;s zn`g-FTS}=>sOT|w2OOxu1bFyN;qw?ikHZOg0;W-`fRBq$;%86FWIO@lC*e8#crt^3 zi*t>iOXK-9!8g8GQW|=%fHL~J5`%a{SdGAqh7PUhnfJS` zX5=^9QD3Qt8{yWK9Y5&xf?Xfwej^OKxOS`=g&+7^yM7Qw!S?%pwA&3e+HU&YX2Xv< zem{&Nw2n4Pt)L%i7}vS|DCnWDYSg)mPA&)SMl0;8fAOc3b&a@iUkSRJC->xv_c4yS zl2VT6dH7zzmvUzGJNGGSoNx9cRMnbqYV2*LYCEA0zKH>BN6k)Ksqt`oyYp7ROIwhr zW>EumH!iL}|GK}iy1DuCg_kz8g&C!ePkF2B>#weRQ{GO?Pp{JfOkC}C+B=?Rz-zWW zvr&pI_bjq-*Hy*youCmmaDB}~E(XhH(d(#=xqm5WwUB9K8wpZlXgA{=(dleBG#?n# z9~8&@{q?-4<2Axd!If4tr6>b1L)EX6Z?N^ObN~*V{u;lOJCxd=(YFnC8ZD^963o+g zPB4YovLFi?ZN_aN+@1%=tb__Y0;k|4lwp#_NjOciRAl!;oN<;yonwYYcvK_yZ5W4D zn1cx;k2mPchBGk77{BAiWE4i5M%-t7mcAr*C2_@zggU$7bi&h9P zFz&o7`9hmXrjC-YEI);x$OG2QzNI^YFk!(W%uyaoB-gwx(|lB75=IK|NaVcR1ivoV z7G{n#EOuOIvqaP@(9Ki!bAIg`*QRPa|59 zy`10(+*_GdXSs6SpHr2Ktn1p+EMethMbj$Dulo<@21mNbl*#*W|H)Wv$is4a|Apts zo~a3BQleVH6K<-I&(^8*O3j$)rp|qSpJOU~B~qhxzf716&8Pj0+ysYMK123~HE}Mj zSGaRDe;oC6#mur5Zp zHznASs2;d3ijKteLuP-6t&11Z`Bup7z57w=#gr!-djZ`Ir7>jE+zjTVxOlo)TEC05 zFuXOAKDGVQjg*%ho*TCFNh)7MKiK1F1^)w;?pykv*-;kDq$el3)1I63e3b4>7U||H z|FYMR4!cHY>J55F@kgwqz3NWGv-l}N9~xRva>MDGmpe~-a``%GnGT|}WBwzUU7&2x z>G^yZ39=(S*4#!KSt5(lkB|K(wTv}MQGZTS!yCk2FYUZw0Cb#8UBDd06vG+Uh z^sukS+-DSwig)f`TAS|A@_W*cu2U30N>yUK(%%mR!8l=gZ!^V;xm$(BW1C{@7TNk! zR-*5CL9G2fu)+U5+<1#Ds-si`S-(x|toW*|Ur3;NK`pMkYAiZ+=B08`xKHGZG?;w{ zn0?8etk(OdlTi60!MY{9qI6H^h0lUvn^36)$$NE>ORik2MxF<`9carvlbPo-b32}k zufYWEomjV~ne{4mlaysSiGtzH$+@g{IcE|FYtesab9OWKFPN43#@yp9S|DfY|5^MG D^U@l? diff --git a/root/data/scripts/gl_throwing_bonus.int b/root/data/scripts/gl_throwing_bonus.int index 395580bce544ea7e92703f526c9fe7ce5e3f03aa..afa5bdd2885158880091b2289acab23ab85f9ccf 100644 GIT binary patch delta 22 ecmZ1{zD|6?HSXNRl8pG|oW$G$hK&!;asdEqA_;o{ delta 22 ecmZ1{zD|6?HSYA(lKAAD#N2|^l#LJ1asdEr-U-?O diff --git a/root/data/scripts/gl_update_map_objs_from_proto.int b/root/data/scripts/gl_update_map_objs_from_proto.int index b58d948fc03f586c7103c8a0137e8c955659d06d..c2b7d1de6ad516c13453cf1d245c26b7d1214d13 100644 GIT binary patch delta 115 zcmdlcct~)=WH#GX2N)R`81%p-LnHSA#{WRjVA3EB5@9>hAkm=TAO)5cgQ;n7g~~pe xe1t8SanEE4_E5%2lk?c^8C52)V>f4kxJ_`wWH!Tjjf@8v8GxX{qCpzOV%yUo(V*WT1r`;9$Te~|xI$%bOuoPt%(!8) q3VSGH+vF;Cdq#=LyV%VcdnSKk_hrukspklq?8f2G_-yht4jlm6wi}BVh#tnh2^*#(>z^nqHVWgJ_RNM?E0-?R0K*jw~#l3ey#S>7)eO5umOVGq$ zK=?w;`%oo(9X3B=ZE>93z{AGm-ZS}to6_Vicj0>02Ezl43=HlcKqLcGgAtf!Z7^!E zXpjcW+-s0%aBa|UkU~+x&|u!64^s=30h$@(^YG zGFibxl5yH3chSlI9z2XalVd#OIlnZpfRuTBncU)`$oOFLG7oEJpdpj%+$5F78>~>Q zWCl9-3s^N9L>B|g=dI$gj delta 533 zcmcaLi}AoL#tnh2^+pU}z^nqHVWgKHRNM?E0-?Q5LB;)0#l06m#S>7)eI`J~OVGs6 zLHI(<`%oo()iyt3ZE<9BZ<~C;O=8|)nhkX>IuBJS@RSSCLZl#}wD2Uft*a1cy0!2IW#HaW-BlV1#CAwwca*7M5b zBc9!ib&~_U#2M2jXL#u{_Dr7UrOdct@-8n!#weh;7?U>>P(psPvbP^&$K)dK1}5(x elfQVMWZW`&pN|2P&zH#`d{h~EK%B|v>_h-4GJ8k> diff --git a/root/data/scripts/nceldrid.int b/root/data/scripts/nceldrid.int index 7365b9d188d8957451ec3b2e2332897e8099981a..587dfecdc3c4026a4335c21094ffa76abdccd749 100644 GIT binary patch delta 5778 zcmZu!4NR2h9e@Yrjv)p zy3QHn`gd+=T4kndOh+gyu5s2)*4f5b%S_iaWOI%*u4{;K&KTO5#_oBakC%H7Nx1i( z-~a3P{GR{wywAPzF*@@xI(~jEb+sf(kCFeoi{qnlcooNAiNjBF{B`9ywrmU@;D)JX zO!*e1j*^5fYw`TUY>ejO@CA;~$Kek+{zVL~)Gr8g!|fP@f)81t$arEKpft~{kc-Yx@|4T<9cG-Esnn=Jo)<9b7|zG!oZ%}Pw)WVG{V{-q@EB6 zdp>!cJ>|Exc%$$?r^R=SHS&NzX$?)hS>!8Pe5Z%|bIFBu*CvkN5D0tj;>2a%1H!tC zFTq$s9Mk3~b4iF}+WZyAL~Q1A70?aW1*A_GNKAC=mAS8{l|J9L|aA zYP5L&Ju*%w|GIjuVX$>()9S%hXy44)HKPfD*Q}OP>fnX79*CxxzP}0=<-ld0Y9E zWL!j_t8fu6!|SN!SJ;ZT;CyV?cu2Su=L=tMp_$YiI+odRn^|EhC3oEv{VtL0SLio{ zi&+*!6WmX6qdG7fT>2@jQ>=z5s4}?GYtUn;s1?jeER9UyPlAtIa5=?fR#750d|yFQ zW?3dlhl`*o+YYmp1|on}PHh5bYAt%R?X+PIb zunDFggm8K|$ttm-Rf3UpFZuu;n$2?hJ(y0nZN4Y+b2fCf&A0KAGL~Bf53^JFG0S87 zaS3B+jzY58i_Sxlxf;C=Bj)VLEmqEai{|_X{tz$X4Q%G-FYx2668$vdRhV{M48?hp zEkGz*P%B|*l`XAMV97wAL8GOblsRSz3@m%EtYCTg=nCF*j1_sV(B2(Y=gVhhje^~p zKUPQcuf~6-&jd1Os!vAMaYdbnIE~^G4l~>_N^*auVC{7Tqbp)PN0bx$3Nb%h35`S8 z$bE~s?_!LvjE#`&X-aYoGvbaK*ypJ++xs;9X${+ZaM5$kX*o`{K>Fd6 zj1L%n?~57_DuH*1wu5&c)xf(?<3TmZx=l2A-+w~Q@dyc)_Y`S|CsOX?Ka#VLpY`5* zaK&4QO5nOb4c7YB=nu0@zI{;B?@nn{X6O^xVHobWwJ_`>#e)8eKb%F0J?|jTpknFWAza&wAJ!@G12+aCy$PQfrkL>rsL!S!`fYYCC8PT{Wa`(5O%b!b5 z$RmC)s)T933pvOH%$|TzQ`IV}2Er^&pa?Si%r${#KHRBswMJNX4^zR`=6oxgMBWq+ zNl-(crvW;49@eZ_o4oy+X{)Du-doU~=PG_vW6i^S+elX+Q{`PLYw zv^hhDm`$U3!H^^|FW^wCvU*jaMos0k6_q7?iAgcOdYtu-GG|umB=m&VqYLEI25*Ft z&`t8q3bUa#?j=pu^c7jna69x9bcMYAtusgS^$5)?Y+$k=1(6L}@Eddy`U)fHDohmq zfgEp!@;ZC*DCO~`(*0zyByvBa`?c5%!{xc~@1is`4AbR3NyXD_k&35bptzL1P-L$f z#y4R&1UVH>Ih+jj6;V$ZvzRbelB?e8^(>5Gx*`HU3_pXyaCCze9)vScGgvoF$R%b< zuVntw^h%y5^s3~N>y%rmfz>HBz~z!s+eu9|wcARMQEsLCDYw!E9(bxL8H_h@S6*9f(0_ZIhbhDwT>i2^AN5i7?qh zR+YYBDp)THNmU{hOEc3IZe+^jEn~zNSffM?aI4aZj;k2vk3ZGT~J9 zk4;l7KiVkj)*OUT&9kOpJfE6xVY22~QvGK1m+($)JvsyrYM&#WH@xXN{nI>4HxyJ` zVAbX>(~{sV@^1bJlH1B)YICtk%*i5b(I{MNS8S;eiF%CpL^jn9KkM8`&F@D&C}-wo zG!+phcem_GI7DvCccU-Q{Izap0y+Yo`Wag#6-Cc(Ly}4CyzO?lQ~ztU0LQl%$qf=* z-u?z!Bugz$y6l-t4QCKKOBy2s#u~4ZZ1p>G(c;YWJH`+?MwZ<=v-T;3$YE&M`IJ6~ zt?SNtcxHLDD`)2N&L1c)WM_6ZAJFV*^^|YE&SIO-bCGoTD&?FY?zPQRnn*k5XPX*1 zN8S$wa*G6?Hy4rs%y zdI6etTlD-zwEG?m?;aGRJz==HyTcUawAEhS^Ex!_IgLDUd(V1Q4u)2X{ywYP`Ysf- z4yvR3aH_REtzE|xB#8xX>mlbgz%RoR)t}E1Uftw%vPu@NLglGz1I1=E`1vJ?mvZ%9$HI?0Y9P&EylEp+?NY z$=+>pUlPevjp|8fwXF-%YeL=1OGV#j^zPHQ0O$K$$O-d(*_I%anqQUp-KW2q?13~0 z_OB6(*MEpy)%@ycl3dbUspmxOc($?y`sZPyzZ$&?3;j0INy;^Apbne^E^^#d4P;wh y74C|hla;H8q12JOsYV3E}Fsl!1dDdsc^t0b{%gH@zjIn)ehpjXJ`bN&yK=|8ss delta 5802 zcmZ`+3rt(r8TPq$DJCQszpf27V1u!F*#sP8-h>d65<*gHUIxq~4$Vl`RaGa^h%T3^ z?XnC-ls{t?$}$#p6Y8?AE38VhjAm7fvh<;-i#C+8EUG5bRZ)bZDq~ZW?%Z?Ez4#hx z$v*dd=Rg1do$vq8xyR=}MkhZ;6BkeD?y6L($MJU+e`7v|X4YAY0r8{ZS=vWQO5F7h z!_(sM`waIe@w`FOKcPYu%7OeLHbEl5hVv&GPAAHf3K$VIB17b%AcxtXjKfD6epYNx ztPd83*}z-tnD|uq62m`K;=W@H|11t)WcX4Xew*Q6#NcB5VkQ|9QxWqi4$%&J5Ch`J z;?uOxDPh%irWhBO8viHE-l&`qJjmA1Whe*A18hQE&Z_DeUZS+Gy2$VTZTG)RTkcII-Xhu0EAay-{A|L4a^T=?hF?|Ut%(f(T!}x$QpGLD z;jG%Zl{lQG;DkDkX(*o>s^gf3Se2{eh_*4m>Nuip&oMu7L_1jRs43C){nvS)O^9O} zeuv?#23R~*&vOiCsgv*s3!u?R2yOeAf6ca79LMiJPXUc3c0i>XxWaI!5+6)rcwrpg z#BjEIq|re}R8uD*v^^xA4<`K8u!+*};hMSngu{=a=DFD|BWff%M^Wv|H6G}*{5lVzIA)Sm&2o}L7q^*yCgFk{_@U0_aMCwO(gU*M=l!Ejr@~pzX zu97Dtl+szcASCM?$O~Rwrglouh@-kGXvf$~Fruq0$ML1Pq*br;8smiug0YAyJSKcC zA}OJEo4nvR z9*y%ta%r50dE;x^SLyOiQD`ywllT?df3yc%>TRak?@tUgD%s274Gro*zou9 z6WVA7Qw!6h_>NIj1g@u(^x8LpCCHlYMXSLIm>mJ zu}6|@?Ua};7X)XWIc=|kAMs&53x9Qfl3|T9%M67H(cY$mE7?_?EfF4NpE27K6&A!v z`e`W6y5va@$WHM7!dsT44DWD*$Xh1U4yRn+40{eW#_jsTO6kIEr(x3eyIv=?a5yE4 zBYlz_aTsA?AKEB~{YxS*67*t==d%d*vsj=$EsKzK9}+Wmnv5G)mT?3k8K2sVDU+

iogY$v!p_2d{@5Ne(CI9X_pGP|)OXp&?wLeEJk! z9rk~htVt!U#W96z)&>g>Yo1tuaYf>|wNVvk|D==0$CFqixM)da*D$V;ou=`P{GGRP ziF|6uN1YhgHK?#48n{AOgKE@_CHRS{Susu&$oZVqN6vBC#U>KSM5b|lJdtu!_#-~M z*y-(B5;rcaxzdph-Yzy8ad8F5T0}m%$EefXX1Ee{q$sgtuo|^KPO%Fxo}2l^d0{J6 zkNo50?PR^YS7I!9Uf}lH(?^L)* zWG=>G#9e@oxHsG`#1Pfpu(IN&ByG*KSjEp zWr%pJ=w(95GXZBkndmdP?8!sRu;TeOnup1}11JEa&AoHA`3dN;sHp8^z8U%p_Mm#0 zEwJO?#e#phl7#<|^>3AgFXF~L1QDx^IMypJfaqBCrYS~4i=fvTcR)GB5y zR5Z>+A+>{F+2pvZQwckT4@AF3rxeR75?DSY_qdhLeRg~nU53S?9HaM93^7te!ToIXA^x?%P45=RvVxmw z1Gk5e;QJwZYwonqfzSdD6#o*PhtciT=xw;P{XKLR%U%dGCF#}(5pqTNh_osp zNChoF$?-MX+jzd#S+cQBBR-X;73 z4`{H!1Gp6^vyLi4%5_rqJb25*GH5B=?O3EU$`%#2GQF}zMz0Q1gTLp3tC&&_+zq|} zFP8E!TK*gChN_sBR++px&5CyzO($2GjCl@NCl$eDVwII9{EZ zH$(i0*Hlt@)iaVk!I6w#gb%87xau|dvf76{V5#w;PS{)X3|DgxF4p`=`#Oz`%Hc{a z4+FLBC;=|kzGyfj;S!^|DD15}YS728pzaG;tUHPiu(gJt!k>3GX@{k?5Rawx?YN{* z)qfwgOzwKouq+KqZg*XPiCsqxk^sDfH{`>%hNFfhMx#&0XJNeIDALWXHKZaO^^>|? zu)oo$9>%xUq}{K~{kySMjh=<7ra638t~T*V1&RB9ffnJ-eI?w!6}YwUXXyIeX!AD+ zoyK{&gKeV+3NSQr-~>X?&*`4DA{2%E)+e<(n%C9^czM0|ly2@;>vu&Hd@59h!io(p zAHkt_>D==w(SO%2UIRe*Y*L`RQQqkM<>K zsq?{m?Ex)AI?`aRz1xt_7A044$4fBO@pF_237y%Ftj)c4-lXh0U&lG~!3&*%R0+8$ z`J3!$HFkZ)dh%ZAs>dY~ghbb`Pcf&sTZ+Ac|Az=vibn7LpuY?CUsvxDn3?#$Dek)1_^S~Yy zg2(`$&hB&r6Rbu{gx}Ja(!i@QF~Do3@n6B)1ADoFRXoWIy1_hDELJ=W59X!o$rY(_ z;}vP}626aQi$}k3nb@QW#<4w;HU96pM+|yM1NR5>cs*S+yMD2|)1eByO^t9Nnv`^C zni?D$#;1JldUq0E@G|t$s7f`KN1QG|*5L}!rD$x?k#D=gMYG6#DOw1@XeJtl&S)M# pvKfu&45P6{tD@u4>zIXG?yX@GnW=0{;&3oZ zK?+3$LxXvPK1?lC25b`C3>JvV0b*$SEE){JA`BqACcpC&mA(PvH=F>o7#oZsX8Tu7 zmh)F+EST)zFVA_SfdwS%e`9h6Q0&O$E`MuBn0vuy0o~6Gbw5zNQM|zlY#I~99U!@e zFCY=WR}hmJSQ?BbU(k_Y3Ro~%E+AF$7(_Ub3#^T$;UJg>c@!KF0hcB(3Gjrgia=9k z3{e&6Fqtn#_rdb+{8q6D{!7{rVBpUP^ zq!9A|fuO;pK_4Lk)Co1m{~tvE>`;V;j5pn(M>?|)!& z15j+u-E1JUOAN0_`RX1d21NO+FVSG1(zdl+kB%SYSCL;~AiUC*!2a z62Y>JR+G(wi^X?9jAa135f~PSK*k1dn|vVHlTlzYS4b=4jmZ;2#2J@?jXDrAm$71U HTxbsf^hP`0G;4!VgGGZhSms%SM1yOC zeuET>3Wf&r27Q=XsEpy{2Nt62RuJCgKNi}lf52=8plK(-EXD?7h%U={Fc}El$OfjF zfhu7trZn)Ps9^;2)EZbJF0uU6zycDn{4=@7Qjzh+qB delta 494 zcmZ2gJ)wF7BTKy%0~j#Pg3vJ1It(hl1||Zbt(QQ>_o0g0@Ib|XpozbL@R|8g#ckst z{LKw4?~Iu&`X-++SDHM-LO7hI!SDbh1B1l}5Xr#QU<9UF8jKpu8>GQ9_ZlP`^c$oQ z^8bOL!K6VSAp+D1HOEQ`qJOf8r8eV}$qts1jBS&nEEO4RCf8WXb3SQc0m)lFnY;uj zc46`{OKVG@U0^*7P?{OxhDPxQD~NdzS26(Q8oq!;EWS0cOy0mLCuOw^tbn88Ak+}3 zv#s(bmsol7+d(X3Yyinx-I;vG>NsQ98!Prr|qSKVyS2 n#ACKX4ZIK&!K6w9D 0) then begin componentData := string_split_ints(orList[0], ":"); @@ -675,7 +675,7 @@ procedure draw_item_properties begin saved_line := line; while (field(line) != ITEM_SKILLS and line < SECTION_STEP and field(line) != "Error" and bstr(cur_section_start) == ITEM_ITEM) do begin has_any := 0; - list := string_split_safe(field(line), "|"); + list := string_split(field(line), "|"); i := 0; foreach tool_word in list begin tool := atoi(tool_word); @@ -710,7 +710,7 @@ procedure draw_item_properties begin // Display list of skills saved_line := line; while (field(line) != ITEM_COMPONENTS and line < SECTION_STEP and field(line) != "Error" and bstr(cur_section_start) == ITEM_ITEM) do begin - list := string_split_safe(field(line), ":"); + list := string_split(field(line), ":"); if (len_array(list) != 2) then debug_msg("! ERROR ! [craft] Invalid skill definition: " + field(line)); skill_lv := atoi(list[1]); // list of skills @@ -753,7 +753,7 @@ procedure draw_item_properties begin max_batch := 32767; while (line < SECTION_STEP and field(line) != "Error" and bstr(cur_section_start) == ITEM_ITEM) do begin has_any := 0; - list := string_split_safe(field(line), "|"); + list := string_split(field(line), "|"); i := 0; max2 := 0; foreach tool_word in list begin @@ -830,7 +830,7 @@ end procedure parse_skill_name(variable s_name) begin variable i, j, skill, lst, lst2, s; - lst := string_split_safe(s_name, "+"); + lst := string_split(s_name, "+"); lst2 := temp_array(len_array(lst), 4); j := 0; foreach s in lst begin diff --git a/scripts_src/_pbs_headers/ecco.h b/scripts_src/_pbs_headers/ecco.h index 861d93a..3e3c271 100644 --- a/scripts_src/_pbs_headers/ecco.h +++ b/scripts_src/_pbs_headers/ecco.h @@ -114,8 +114,7 @@ #define is_melee_attack(type) (type == ATTACK_MODE_PUNCH or type == ATTACK_MODE_KICK or type == ATTACK_MODE_SWING or type == ATTACK_MODE_THRUST) -#define tile_behind_obj_rng(who, rng) \ - (tile_num_in_direction(tile_num(who),((has_trait(1,who,10) + 3) % 6), rng)) +#define tile_behind_obj_rng(who, rng) (tile_num_in_direction(tile_num(who),((has_trait(TRAIT_OBJECT,who,OBJECT_CUR_ROT) + 3) % 6), rng)) #define attacker_behind_target(oA, oT) \ ((tile_distance(tile_num(oA),tile_behind_obj_rng(oT, 2))<=2) and (tile_distance_objs(oA,oT)<=2)) diff --git a/scripts_src/_pbs_main/gl_expforkill_mod.ssl b/scripts_src/_pbs_main/gl_expforkill_mod.ssl index 3094270..59ef7d3 100644 --- a/scripts_src/_pbs_main/gl_expforkill_mod.ssl +++ b/scripts_src/_pbs_main/gl_expforkill_mod.ssl @@ -6,12 +6,12 @@ #include "../sfall/lib.arrays.h" #include "../sfall/lib.math.h" +#define SCRIPT_REALNAME "gl_expforkill_mod" + #include "../_pbs_headers/ecco.h" #define INI_SECTION "EXP_FOR_KILL" -#define debug_log(msg) debug_msg("gl_expforkill_mod: "+msg) - variable origExpMap, // associative array pid => original exp value killExpMap; // associative array killType => accumulated exp diff --git a/scripts_src/_pbs_main/gl_pbs_barter.ssl b/scripts_src/_pbs_main/gl_pbs_barter.ssl index 57f8c56..fa8840d 100644 --- a/scripts_src/_pbs_main/gl_pbs_barter.ssl +++ b/scripts_src/_pbs_main/gl_pbs_barter.ssl @@ -266,7 +266,7 @@ procedure barterprice_handler begin set_sfall_return(0); end - if stats != "" then debug_log(stats+", dude barter: "+dudeBarter+", merchant barter: "+merchantBarter); + if stats != "" then debug_log(stats+", dude barter: "+dudeBarter+", merchant barter: "+merchantBarter+", barter_mod: "+dialogBarterMod); end procedure calc_items_demand_mod(variable containerObj) begin diff --git a/scripts_src/_pbs_main/gl_pbs_damage_mod.ssl b/scripts_src/_pbs_main/gl_pbs_damage_mod.ssl index b39c379..e6eb1fc 100644 --- a/scripts_src/_pbs_main/gl_pbs_damage_mod.ssl +++ b/scripts_src/_pbs_main/gl_pbs_damage_mod.ssl @@ -11,6 +11,8 @@ * - Allows to override attack damage type based on loaded ammo. This affects damage calculations as well as death animations. */ +#define SCRIPT_REALNAME "pbs_damage_mod" + #include "../sfall/lib.arrays.h" #include "../sfall/lib.math.h" #include "../sfall/define_lite.h" @@ -44,8 +46,7 @@ procedure round_chance(variable dmg); #define INI_DAMAGE_TYPE_SECTION "DAMAGE_TYPE" #define INI_ATTACK_MODES_SECTION "ATTACK_MODES" -#define debug_log(msg) debug_msg("pbs_damage_mod: "+msg) -#define debug_verbose(msg) if ini_debug then debug_msg("pbs_damage_mod: "+msg) +#define debug_verbose(msg) if ini_debug then debug_log(msg) #define DT_MODE_ADD (1) #define DT_MODE_MULT (2) diff --git a/scripts_src/_pbs_main/tests/_export_array_syntax_bug.ssl b/scripts_src/_pbs_main/tests/_export_array_syntax_bug.ssl new file mode 100644 index 0000000..6d7642a --- /dev/null +++ b/scripts_src/_pbs_main/tests/_export_array_syntax_bug.ssl @@ -0,0 +1,9 @@ +export variable wtf; + +procedure start begin + variable k := "a"; + wtf := temp_array(-1, 0); + wtf[k] := 1; + display_msg(wtf[k]); +end + diff --git a/scripts_src/_pbs_main/tests/_if_after_foreach_bug.ssl b/scripts_src/_pbs_main/tests/_if_after_foreach_bug.ssl index 669864e..ed28df5 100644 --- a/scripts_src/_pbs_main/tests/_if_after_foreach_bug.ssl +++ b/scripts_src/_pbs_main/tests/_if_after_foreach_bug.ssl @@ -1,7 +1,14 @@ +procedure test(variable x) begin + return x*x; +end + procedure start begin variable k, a, arr2; arr2 := 111; - foreach k in (arr2) - if (k) then arr2[k] := 1; + for k := 0; k < 2; k++; + display_msg(1); + + foreach (k in arr2) if (k) then arr2[k] := 1; + end diff --git a/scripts_src/_pbs_main/tests/_leftover_strings_bug.ssl b/scripts_src/_pbs_main/tests/_leftover_strings_bug.ssl new file mode 100644 index 0000000..fb6f495 --- /dev/null +++ b/scripts_src/_pbs_main/tests/_leftover_strings_bug.ssl @@ -0,0 +1,23 @@ +procedure procedure1; +procedure procedure2; + +variable procName; + +procedure procedure1 begin + display_msg("yeees!"+procedure2+procedure1); +end + +procedure procedure2 begin + display_msg("double yes 121233!"+procedure2+procedure1); +end + +procedure start begin + variable localempty := "";// @procedure1; + variable localNotEmpty := "noooot"; + //localNotEmpty := "noooot"; + //call procedure1; + //call @procedure1; + //call "procedure1"; + //call procName; + display_msg("No?" + localempty + localNotEmpty); +end diff --git a/scripts_src/_pbs_main/tests/_string_call_bug.ssl b/scripts_src/_pbs_main/tests/_string_call_bug.ssl index 923f6f7..0aa5591 100644 --- a/scripts_src/_pbs_main/tests/_string_call_bug.ssl +++ b/scripts_src/_pbs_main/tests/_string_call_bug.ssl @@ -1,12 +1,27 @@ -procedure my_proc begin - display_msg("my_proc called"); + + +variable cond; + +procedure my_proc1(variable arg) when cond begin + display_msg("my_proc1 called: "+arg+", cond: "+cond+"; "); +end + +procedure descProc begin + variable arg := get_sfall_arg; + if (arg == dude_obj) then cond := not cond; + call my_proc1(arg); end procedure start begin variable n; variable procName; - call my_proc; - n := dude_obj; + //call my_proc1(1); + //call "my_proc1"(2); + //procName := @my_proc1; + //call procName(3); + n := dude_obj != 0; procName := "my_"+"proc"+n; - call procName; -end \ No newline at end of file + call procName(4); + + register_hook_proc(34, descProc); +end diff --git a/scripts_src/_pbs_main/tests/arrays_testcase.ssl b/scripts_src/_pbs_main/tests/arrays_testcase.ssl index f0a7d4e..e2f753c 100644 --- a/scripts_src/_pbs_main/tests/arrays_testcase.ssl +++ b/scripts_src/_pbs_main/tests/arrays_testcase.ssl @@ -1,3 +1,5 @@ +#include "../../sfall/sfall.h" +#include "../../sfall/lib.arrays.h" variable test_suite_errors := 0; variable test_suite_verbose := true; @@ -152,6 +154,10 @@ procedure array_test_suite begin display_msg("Testing save/load..."); arr := [2,1]; arr2 := {1:2}; + s := ""; + k := 1; + if (arr and not arr2[k]) then s := "ok"; + call assertEquals("bracket syntax", "ok", s); save_array("myarray", arr); call assertEquals("load 1", load_array("myarray"), arr); save_array("myarray", arr2); diff --git a/scripts_src/_pbs_main/tests/gl_cheat_enemyspawner.ssl b/scripts_src/_pbs_main/tests/gl_cheat_enemyspawner.ssl index acdfb41..6805d34 100644 --- a/scripts_src/_pbs_main/tests/gl_cheat_enemyspawner.ssl +++ b/scripts_src/_pbs_main/tests/gl_cheat_enemyspawner.ssl @@ -7,6 +7,7 @@ #include "..\..\sfall\define_lite.h" #include "..\..\sfall\lib.arrays.h" #include "..\..\sfall\lib.inven.h" +#include "..\..\headers\animcomd.h" #include "..\..\headers\critrpid.h" #include "..\..\headers\itempid.h" #include "..\..\headers\scripts.h" @@ -19,6 +20,9 @@ #define ENEMY_RAT (5) #define ENEMY_ALIEN (6) #define ENEMY_MELEE (7) +#define ENEMY_GECKO (8) +#define ENEMY_BOSS (9) +#define ENEMY_DEATHCLAW (10) variable enemy_types; @@ -43,9 +47,19 @@ procedure spawn_enemy(variable type, variable tile) begin case ENEMY_RAT: pid := PID_RAT; sid := SCRIPT_ZCLRAT; + case ENEMY_GECKO: + pid := PID_GOLDEN_GECKO; + sid := SCRIPT_ZCLGECKO; case ENEMY_ALIEN: pid := PID_ALIEN; sid := SCRIPT_ECALIEN; + case ENEMY_BOSS: + pid := PID_END_BOSS; + sid := SCRIPT_QCFRANK; + weaponPid := 530; + case ENEMY_DEATHCLAW: + pid := PID_MOTHER_DEATHCLAW; // PID_TOUGH_DEATHCLAW; + sid := SCRIPT_ECDTHCLW; case ENEMY_MELEE: female := random(0, 1); pid := PID_MELEE_GUARD_MALE + female; @@ -59,13 +73,14 @@ procedure spawn_enemy(variable type, variable tile) begin critter := create_object_sid(pid, tile, dude_elevation, sid); if (weaponPid) then begin weapon := add_item_pid(critter, weaponPid); - wield_obj_critter(critter, weapon); + //wield_obj_critter(critter, weapon); ammoPid := get_proto_data(weaponPid, PROTO_WP_AMMO_PID); - if (ammoPid) then + if (ammoPid > 0) then call add_items_pid(critter, ammoPid, random(1, 3)); if stimpaks then call add_items_pid(critter, PID_STIMPAK, stimpaks); end + return critter; end procedure spawn_enemies_circle(variable type, variable radius) begin @@ -91,11 +106,19 @@ procedure keypress_handler begin isPressed := get_sfall_arg, keyCode := get_sfall_arg; - if isPressed and get_cursor_mode == 0 then begin - if (keyCode == DIK_5) then + if isPressed and get_cursor_mode == 0 and key_pressed(DIK_LSHIFT) then begin + //display_msg("key pressed "+keyCode); + if (keyCode == DIK_5) then begin + //call spawn_enemy(ENEMY_BOSS, tile_under_cursor); call spawn_enemies_circle(ENEMY_ENCLAVE, 2); - if (keyCode == DIK_6) then - call spawn_enemies_line(ENEMY_MELEE, 3, 0, 1); + end + if (keyCode == DIK_6) then begin + variable crit := spawn_enemy(ENEMY_DEATHCLAW, tile_under_cursor); + reg_anim_clear(crit); + reg_anim_begin(); + reg_anim_obj_move_to_obj(crit, dude_obj, -1); + reg_anim_end(); + end if (keyCode == DIK_7) then call spawn_enemy(ENEMY_FARMER, tile_under_cursor); if (keyCode == DIK_8) then diff --git a/scripts_src/_pbs_main/tests/gl_test.ssl b/scripts_src/_pbs_main/tests/gl_test.ssl index b6fd9ce..ef176df 100644 --- a/scripts_src/_pbs_main/tests/gl_test.ssl +++ b/scripts_src/_pbs_main/tests/gl_test.ssl @@ -1,298 +1,132 @@ - -//import variable gecko_percy_box; - -#include "..\..\!sfall.git\artifacts\scripting\headers\sfall.h" -#include "..\..\!sfall.git\artifacts\scripting\headers\define_extra.h" -#include "define_lite.h" -#include "lib.arrays.h" -#include "lib.strings.h" -#include "lib.inven.h" -#include "mod.h" -#include "..\headers\aipacket.h" -#include "..\headers\teams.h" -#include "..\headers\itempid.h" -//#include "traps.h" - -//#include "tests\arrays_testcase.ssl" -//#include "tests\compiler_testcase.ssl" -//#include "_dialogs_test.ssl" - -variable victim := 0; -variable key_1 := false; -variable cursor_obj := 0; - -variable iii := 0; - -variable ary; - - - - -procedure set_item_count(variable invenobj, variable itempid, variable newcount, variable wield := false) -begin - variable begin - count; - item; - end - count := obj_is_carrying_obj_pid(invenobj, itempid); - if (newcount > count) then begin - item := create_object_sid(itempid, 0, 0, -1); - add_mult_objs_to_inven(invenobj, item, newcount - count); - if (wield) then wield_obj_critter(invenobj, item); - end else if (newcount < count) then begin - count := rm_mult_objs_from_inven(invenobj, obj_carrying_pid_obj(invenobj, itempid), count - newcount); - destroy_object(item); - end -end - -procedure _name(variable a) begin - if not(a) then return "NULL"; - return obj_name(a)+"("/*+obj_type(a)+","*/+obj_pid(a)+")"; -end - -procedure _name_fid(variable a) begin - if not(a) then return "NULL"; - return obj_name(a)+"("+sprintf("0x%08X", obj_art_fid(a))+")"; -end - -procedure how_many_misc begin - return len_array(list_as_array(LIST_MISC)); -end - -procedure skip_call(variable adr) begin - variable i := 0; - while (i<5) do begin - write_byte(adr+i, 0x90); - i++; - end -end - -procedure spawn_group(variable pid, variable tile) begin - create_object_sid(pid, tile, dude_elevation, -1); - create_object_sid(pid, tile_num_in_direction(tile, 2, 1), dude_elevation, -1); - create_object_sid(pid, tile_num_in_direction(tile, 5, 1), dude_elevation, -1); - tile := tile_num_in_direction(tile, 0, 1); - create_object_sid(pid, tile, dude_elevation, -1); - create_object_sid(pid, tile_num_in_direction(tile, 2, 1), dude_elevation, -1); - create_object_sid(pid, tile_num_in_direction(tile, 5, 1), dude_elevation, -1); -end - - -variable objs; -variable arr; - -procedure combatdamage_handler begin - variable args := get_sfall_args; - display_msg("combat damage " + obj_name(args[0]) + " x" + args[9]); -end - -procedure to_hit_hook begin - variable - chance := get_sfall_arg, - attacker := get_sfall_arg; +#include "..\..\sfall\lib.math.h" +#include "..\..\sfall\lib.strings.h" +#include "..\..\sfall\lib.arrays.h" +#include "..\..\sfall\sfall.h" +#include "..\..\sfall\dik.h" + +//#define get_my_config sfall_func2("config_load", "data\\worldmap.txt", true) +#define get_my_config get_ini_config("data\\huge.ini") + +procedure load_config_test begin + variable + config = get_my_config, + firstSectName = array_key(config, 0), + firstSect = config[firstSectName], + key, val; + display_msg("config loaded: "+config+", sects: "+len_array(config)+", first:"+array_key(config, 0)); + + display_msg("huges length: "+strlen(config.huges.hugek)); - display_msg("gl_test to_hit_hook "+chance); - //set_hit_chance_max(100); - if (dude_obj != attacker) then set_sfall_return(0); -end - - -//export variable from_test := 555; -//import variable bishop_stair_guard_obj; - -//import procedure testexport111(variable a); -import procedure exportfromgl0; -import procedure exportfromgl1(variable a); -//import procedure exportdude(variable A); + display_msg("["+firstSectName+"] " + len_array(firstSect)); + /*foreach (key: val in firstSect) begin + display_msg(" "+key+" = "+val); + end*/ -import procedure logicaltest(variable x, variable y, variable z); + //config = get_my_config; + //display_msg("config reloaded: "+config+", sects: "+len_array(config)+", first:"+array_key(config, 0)); +end -variable bastard; +procedure load_config_test_2 begin + variable tmp, sec, sect, key, val; -procedure keypress_handler begin - variable pressed := get_sfall_arg, - key := get_sfall_arg, - vkey := get_sfall_arg, - obj, ar, tile, step; - - if (pressed and vkey == '9') then begin - set_car_intface_art(306); - display_msg("CHANGE CAR"); - //call add_item_pid(dude_obj, PID_AVENGER_MINIGUN); - //call spawn_group(PID_TOUGH_THUG_MALE, tile_under_cursor); - ar := tile_get_objs(tile_under_cursor, dude_elevation); - foreach (obj in ar) begin - if (obj_type(obj) == OBJ_TYPE_CRITTER and critter_state(obj) == CRITTER_IS_NORMAL) then begin - sfall_func1("set_dude_obj", obj); - end + //display_msg("initest= "+get_ini_string("..\\..\\iniTEST.ini|Section3C|old_string")); + tmp := get_ini_config_db("_bak/iniTEST.ini"); + display_msg("get_ini_config, id: " + tmp); + foreach (sec: sect in tmp) begin + foreach (key: val in sect) begin + display_msg("Section: " + sec + ", key: " + key + ", val: " + val); end - end else if (pressed and vkey == '0') then begin - set_car_intface_art(0x1B1); - display_msg("RESET CAR"); - end else if (pressed and vkey == 'G') then begin - // hero_select_win(1); - obj := obj_blocking_line(dude_obj, tile_under_cursor, BLOCKING_TYPE_BLOCK); - if (obj) then begin - display_msg(_name(obj)); - set_flags(obj, get_flags(obj) bwor FLAG_TRANSRED); - tile_refresh_display; - end - //display_array(array_map_func(party_member_list(true), @_name)); end -end -variable guard; - - -procedure skill_handler begin - variable args := get_sfall_args; - display_msg("gl_test skill "+debug_array_str(get_sfall_args)); - if (args[2] == SKILL_FIRST_AID) then begin - critter_heal(dude_obj, -10); - set_sfall_return(0); - end + /*tmp := get_ini_config("HIDDEN.ini"); + display_msg("get_ini_config, id: " + tmp); + foreach (sec: sect in tmp) begin + foreach (key: val in sect) begin + display_msg("Section: " + sec + ", key: " + key + ", val: " + val); + end + end*/ end -procedure barter_handler begin - variable args := get_sfall_args; +procedure get_ini_section_test begin + //display_array(get_ini_sections("ecco/combat.ini")); - //display_msg("gl_test barter "+debug_array_str(args)); - display_msg("my caps: " + item_caps_total(args[6]) + ", cost: " + args[7] + ", flag: " + args[8]); - //set_sfall_return(1); -end - -procedure useobjon_handler begin - display_msg("gl_test useobjon "+debug_array_str(get_sfall_args) + " mode "+get_game_mode); -end - -procedure useobj_handler begin - display_msg("gl_test useobj "+debug_array_str(get_sfall_args)); - set_sfall_return(1); + display_array(get_ini_section("ecco\\combat.ini", "ATTACK_modes")); + display_msg("list: "+get_ini_string("ecco\\combat.ini|CRITTER_loot|DEStroy_weapon_list")); end -procedure perception_handler begin - set_sfall_return(0); +procedure get_long_ini_str_test begin + variable section := get_ini_section("data\\huge.ini", "huges"); + display_msg("hugek from get_ini_section: "+strlen(section.hugek)); + display_msg("hugek frok get_ini_string: "+strlen(get_ini_string("data\\huge.ini|huges|hugek"))); end -procedure moveitem_handler begin - variable - args := get_sfall_args, - map := {0: "backpack", 1: "left hand", 2: "right hand", 3: "armor slot", 4: "weapon reload"}; - display_msg("gl_test move " + _name(args[1]) + " to " + map[args[0]] + " where "+_name(args[2])); +procedure huge_string_test begin + variable str := "", i; - if (args[0] == 4 and obj_pid(args[1]) == PID_FLAMETHROWER_FUEL and obj_pid(args[2]) == PID_IMPROVED_FLAMETHROWER) then begin - set_weapon_ammo_pid(args[2], PID_FLAMETHROWER_FUEL); - display_msg("Switch ammo PID"); - //set_sfall_return(0); - //display_msg("This Flamer is not compatible with advanced fuel."); + for (i = 64; i <= 1088; i += 64) begin + str += sprintf("%064d", i); end -end + display_msg("Longest string Ever: "); + display_msg(str); -procedure apcost_handler begin - variable args := get_sfall_args, item; - - display_msg("gl_test calcapcost "+debug_array_str(args)); - - /*item := item_by_attack_type(args[0], args[1]); - if (obj_item_subtype(item) != item_type_weapon) then begin - set_sfall_return(4); - end*/ -end - -procedure test_weapon_anim(variable critterPid, variable itemPid) begin - variable obj, item; - obj := create_object_sid(critterPid, dude_tile - 8, dude_elevation, -1); - item := add_item_pid(obj, itemPid); - wield_obj_critter(obj, item); - attack_setup(obj, dude_obj); -end + variable arr := temp_array_list(1); + arr[0] = str; -procedure spawn_item_set(variable pidArray) begin - variable pid, dist := 1; - foreach (pid in pidArray) begin - create_object(pid, tile_num_in_direction(dude_tile, 0, dist), dude_elevation); - dist += 1; - end + display_msg("After array Ever: "); + display_msg(arr[0]); end -procedure cartravel_handler begin - //display_msg("Car travel: " + debug_array_str(get_sfall_args)); - set_sfall_return(1); // speed - set_sfall_return(500); // consumption +procedure string_find_test begin + //display_array(get_ini_sections("ecco/combat.ini")); + + display_msg(""+string_pos("a big fucking string", "string")); + display_msg(""+string_pos_from("a big fucking string fuck", "fuck", 5)); + display_msg(""+string_pos("Not Here!", "hErE")); + display_msg(""+string_pos(string_tolower("BUT Here!"), "here")); + display_msg(""+string_starts_with("Traps_WTF", "Traps_")); end -variable seen, color; - -procedure start begin - if game_loaded then begin - variable s := ""; - variable obj, critter; - variable item; - variable i, k, v; - variable temp, coll; - - //display_msg("FRM = " + read_int(0x4C2D9B)); - // write_int(0x4C2D9B, 306); - - //intface_hide; - //display_array(sfall_func0("get_metarule_table")); - //display_msg("OK? " + sfall_func5("validate_test", 2, 5, "string", 23, 43)); - - //call array_test_suite; - //call add_item_pid(dude_obj, PID_MOTION_SENSOR); - set_critter_skill_points(dude_obj, SKILL_OUTDOORSMAN, 300); - register_hook_proc(HOOK_KEYPRESS, keypress_handler); - register_hook_proc(HOOK_CARTRAVEL, cartravel_handler); - - // display_msg("Gas = " + car_gas_amount + ", " + read_int(0x4C2DA0) + ", " + read_int(0x4C2D9B)); - //display_msg("Fueled = " + car_give_gas(-50000)); - //display_msg("Gas = " + car_gas_amount); - //register_hook_proc(HOOK_TOHIT, to_hit_hook); - - /*call spawn_item_set([ - PID_LEATHER_JACKET, - PID_LEATHER_ARMOR, - PID_METAL_ARMOR, - PID_COMBAT_ARMOR, - PID_POWERED_ARMOR, - PID_ADVANCED_POWER_ARMOR, - PID_PURPLE_ROBE - ]);*/ +#define get_num(x) get_ini_setting("data\\huge.ini|strtol|"+#x) - color := 1; - end else begin - color *= 2; - - - if (get_game_mode bwand INVENTORY) then begin - display_msg("Inventory!"); - end else if (get_game_mode bwand INTFACEUSE) then begin - display_msg("Use!"); - end else if (get_game_mode bwand INTFACELOOT) then begin - display_msg("Loot!"); - end else if (get_game_mode bwand HEROWIN) then begin - display_msg("Hero window!"); +procedure keypress_hook begin + variable + pressed := get_sfall_arg, + key := get_sfall_arg; + + if (pressed and key == DIK_F2) then begin + if (get_cursor_mode == 1 and obj_under_cursor(false, true)) then begin + variable obj := obj_under_cursor(false, true); + display_msg(string_format("obj %s tile %d elev %d map %d", obj_name(obj), tile_num(obj), elevation(obj), cur_map_index)); + end else begin + display_msg(string_format("tile %d elev %d map %d", tile_under_cursor, elevation(dude_obj), cur_map_index)); end - - //set_light_level(1); - //set_flags(dude_obj, get_flags(dude_obj) bwor FLAG_TRANSRED); - //sfall_func2("set_outline", dude_obj, color); - //tile_refresh_display; - //display_msg("Color = " + sprintf("%x", sfall_func1("get_outline", dude_obj))); - //display_msg("WORLDMAP!!!"); end end +procedure start begin + if not game_loaded then return; -procedure map_enter_p_proc begin - display_msg("Map enter gl_test " + cur_town); -end - -procedure map_update_p_proc begin - display_msg("Map update gl_test"); -end + register_hook_proc(HOOK_KEYPRESS, keypress_hook); -procedure map_exit_p_proc begin - //display_msg("Map exit gl_test"); + //debug_msg("Dude tile: "+tile_num(dude_obj)); + //create_object_sid(98, 27351, 0, -1); + //display_msg(sprintf("Sound = %c", get_proto_data(644, 100))); + //display_array(array_transform({"1g":"2 ","3g":"4.1 ?"}, @string_to_float)); + + //call string_find_test; + //call get_long_ini_str_test; + //call load_config_test; + //call load_config_test_2; + //call get_ini_section_test; + //call huge_string_test; + + //display_msg("atoi. binary: "+atoi("0b1001101")+", octal: "+atoi("0115")+", hex: "+atoi("0x4d")+", dec: "+atoi("77")); + //display_msg("get_ini_setting binary: "+get_num(bin)+", octal: "+get_num(oct)+", hex: "+get_num(hex)+", dec: "+get_num(dec)); + + //display_msg(sprintf("__ a=%010d, b=%.4f %s %Z yyaay....\.=-=", 12)); + // display_msg(string_format("a=%04d, b=%.2f, and S=%Z|%s| %c", 12, 0.1353, "woop", 2323, 6, 7, 8) ); + //string_pos(1); + //string_pos(1,2,3,4); + //create(1,2,3) end diff --git a/scripts_src/_pbs_main/tests/gl_test_old.ssl b/scripts_src/_pbs_main/tests/gl_test_old.ssl new file mode 100644 index 0000000..b6fd9ce --- /dev/null +++ b/scripts_src/_pbs_main/tests/gl_test_old.ssl @@ -0,0 +1,298 @@ + +//import variable gecko_percy_box; + +#include "..\..\!sfall.git\artifacts\scripting\headers\sfall.h" +#include "..\..\!sfall.git\artifacts\scripting\headers\define_extra.h" +#include "define_lite.h" +#include "lib.arrays.h" +#include "lib.strings.h" +#include "lib.inven.h" +#include "mod.h" +#include "..\headers\aipacket.h" +#include "..\headers\teams.h" +#include "..\headers\itempid.h" +//#include "traps.h" + +//#include "tests\arrays_testcase.ssl" +//#include "tests\compiler_testcase.ssl" +//#include "_dialogs_test.ssl" + +variable victim := 0; +variable key_1 := false; +variable cursor_obj := 0; + +variable iii := 0; + +variable ary; + + + + +procedure set_item_count(variable invenobj, variable itempid, variable newcount, variable wield := false) +begin + variable begin + count; + item; + end + count := obj_is_carrying_obj_pid(invenobj, itempid); + if (newcount > count) then begin + item := create_object_sid(itempid, 0, 0, -1); + add_mult_objs_to_inven(invenobj, item, newcount - count); + if (wield) then wield_obj_critter(invenobj, item); + end else if (newcount < count) then begin + count := rm_mult_objs_from_inven(invenobj, obj_carrying_pid_obj(invenobj, itempid), count - newcount); + destroy_object(item); + end +end + +procedure _name(variable a) begin + if not(a) then return "NULL"; + return obj_name(a)+"("/*+obj_type(a)+","*/+obj_pid(a)+")"; +end + +procedure _name_fid(variable a) begin + if not(a) then return "NULL"; + return obj_name(a)+"("+sprintf("0x%08X", obj_art_fid(a))+")"; +end + +procedure how_many_misc begin + return len_array(list_as_array(LIST_MISC)); +end + +procedure skip_call(variable adr) begin + variable i := 0; + while (i<5) do begin + write_byte(adr+i, 0x90); + i++; + end +end + +procedure spawn_group(variable pid, variable tile) begin + create_object_sid(pid, tile, dude_elevation, -1); + create_object_sid(pid, tile_num_in_direction(tile, 2, 1), dude_elevation, -1); + create_object_sid(pid, tile_num_in_direction(tile, 5, 1), dude_elevation, -1); + tile := tile_num_in_direction(tile, 0, 1); + create_object_sid(pid, tile, dude_elevation, -1); + create_object_sid(pid, tile_num_in_direction(tile, 2, 1), dude_elevation, -1); + create_object_sid(pid, tile_num_in_direction(tile, 5, 1), dude_elevation, -1); +end + + +variable objs; +variable arr; + +procedure combatdamage_handler begin + variable args := get_sfall_args; + display_msg("combat damage " + obj_name(args[0]) + " x" + args[9]); +end + +procedure to_hit_hook begin + variable + chance := get_sfall_arg, + attacker := get_sfall_arg; + + display_msg("gl_test to_hit_hook "+chance); + //set_hit_chance_max(100); + if (dude_obj != attacker) then set_sfall_return(0); +end + + +//export variable from_test := 555; +//import variable bishop_stair_guard_obj; + +//import procedure testexport111(variable a); +import procedure exportfromgl0; +import procedure exportfromgl1(variable a); +//import procedure exportdude(variable A); + +import procedure logicaltest(variable x, variable y, variable z); + +variable bastard; + +procedure keypress_handler begin + variable pressed := get_sfall_arg, + key := get_sfall_arg, + vkey := get_sfall_arg, + obj, ar, tile, step; + + if (pressed and vkey == '9') then begin + set_car_intface_art(306); + display_msg("CHANGE CAR"); + //call add_item_pid(dude_obj, PID_AVENGER_MINIGUN); + //call spawn_group(PID_TOUGH_THUG_MALE, tile_under_cursor); + ar := tile_get_objs(tile_under_cursor, dude_elevation); + foreach (obj in ar) begin + if (obj_type(obj) == OBJ_TYPE_CRITTER and critter_state(obj) == CRITTER_IS_NORMAL) then begin + sfall_func1("set_dude_obj", obj); + end + end + end else if (pressed and vkey == '0') then begin + set_car_intface_art(0x1B1); + display_msg("RESET CAR"); + end else if (pressed and vkey == 'G') then begin + // hero_select_win(1); + obj := obj_blocking_line(dude_obj, tile_under_cursor, BLOCKING_TYPE_BLOCK); + if (obj) then begin + display_msg(_name(obj)); + set_flags(obj, get_flags(obj) bwor FLAG_TRANSRED); + tile_refresh_display; + end + //display_array(array_map_func(party_member_list(true), @_name)); + end +end + +variable guard; + + +procedure skill_handler begin + variable args := get_sfall_args; + display_msg("gl_test skill "+debug_array_str(get_sfall_args)); + if (args[2] == SKILL_FIRST_AID) then begin + critter_heal(dude_obj, -10); + set_sfall_return(0); + end +end + +procedure barter_handler begin + variable args := get_sfall_args; + + //display_msg("gl_test barter "+debug_array_str(args)); + display_msg("my caps: " + item_caps_total(args[6]) + ", cost: " + args[7] + ", flag: " + args[8]); + //set_sfall_return(1); +end + +procedure useobjon_handler begin + display_msg("gl_test useobjon "+debug_array_str(get_sfall_args) + " mode "+get_game_mode); +end + +procedure useobj_handler begin + display_msg("gl_test useobj "+debug_array_str(get_sfall_args)); + set_sfall_return(1); +end + +procedure perception_handler begin + set_sfall_return(0); +end + +procedure moveitem_handler begin + variable + args := get_sfall_args, + map := {0: "backpack", 1: "left hand", 2: "right hand", 3: "armor slot", 4: "weapon reload"}; + display_msg("gl_test move " + _name(args[1]) + " to " + map[args[0]] + " where "+_name(args[2])); + + if (args[0] == 4 and obj_pid(args[1]) == PID_FLAMETHROWER_FUEL and obj_pid(args[2]) == PID_IMPROVED_FLAMETHROWER) then begin + set_weapon_ammo_pid(args[2], PID_FLAMETHROWER_FUEL); + display_msg("Switch ammo PID"); + //set_sfall_return(0); + //display_msg("This Flamer is not compatible with advanced fuel."); + end +end + + +procedure apcost_handler begin + variable args := get_sfall_args, item; + + display_msg("gl_test calcapcost "+debug_array_str(args)); + + /*item := item_by_attack_type(args[0], args[1]); + if (obj_item_subtype(item) != item_type_weapon) then begin + set_sfall_return(4); + end*/ +end + +procedure test_weapon_anim(variable critterPid, variable itemPid) begin + variable obj, item; + obj := create_object_sid(critterPid, dude_tile - 8, dude_elevation, -1); + item := add_item_pid(obj, itemPid); + wield_obj_critter(obj, item); + attack_setup(obj, dude_obj); +end + +procedure spawn_item_set(variable pidArray) begin + variable pid, dist := 1; + foreach (pid in pidArray) begin + create_object(pid, tile_num_in_direction(dude_tile, 0, dist), dude_elevation); + dist += 1; + end +end + +procedure cartravel_handler begin + //display_msg("Car travel: " + debug_array_str(get_sfall_args)); + set_sfall_return(1); // speed + set_sfall_return(500); // consumption +end + +variable seen, color; + +procedure start begin + if game_loaded then begin + variable s := ""; + variable obj, critter; + variable item; + variable i, k, v; + variable temp, coll; + + //display_msg("FRM = " + read_int(0x4C2D9B)); + // write_int(0x4C2D9B, 306); + + //intface_hide; + //display_array(sfall_func0("get_metarule_table")); + //display_msg("OK? " + sfall_func5("validate_test", 2, 5, "string", 23, 43)); + + //call array_test_suite; + //call add_item_pid(dude_obj, PID_MOTION_SENSOR); + set_critter_skill_points(dude_obj, SKILL_OUTDOORSMAN, 300); + register_hook_proc(HOOK_KEYPRESS, keypress_handler); + register_hook_proc(HOOK_CARTRAVEL, cartravel_handler); + + // display_msg("Gas = " + car_gas_amount + ", " + read_int(0x4C2DA0) + ", " + read_int(0x4C2D9B)); + //display_msg("Fueled = " + car_give_gas(-50000)); + //display_msg("Gas = " + car_gas_amount); + //register_hook_proc(HOOK_TOHIT, to_hit_hook); + + /*call spawn_item_set([ + PID_LEATHER_JACKET, + PID_LEATHER_ARMOR, + PID_METAL_ARMOR, + PID_COMBAT_ARMOR, + PID_POWERED_ARMOR, + PID_ADVANCED_POWER_ARMOR, + PID_PURPLE_ROBE + ]);*/ + + color := 1; + end else begin + color *= 2; + + + if (get_game_mode bwand INVENTORY) then begin + display_msg("Inventory!"); + end else if (get_game_mode bwand INTFACEUSE) then begin + display_msg("Use!"); + end else if (get_game_mode bwand INTFACELOOT) then begin + display_msg("Loot!"); + end else if (get_game_mode bwand HEROWIN) then begin + display_msg("Hero window!"); + end + + //set_light_level(1); + //set_flags(dude_obj, get_flags(dude_obj) bwor FLAG_TRANSRED); + //sfall_func2("set_outline", dude_obj, color); + //tile_refresh_display; + //display_msg("Color = " + sprintf("%x", sfall_func1("get_outline", dude_obj))); + //display_msg("WORLDMAP!!!"); + end +end + + +procedure map_enter_p_proc begin + display_msg("Map enter gl_test " + cur_town); +end + +procedure map_update_p_proc begin + display_msg("Map update gl_test"); +end + +procedure map_exit_p_proc begin + //display_msg("Map exit gl_test"); +end diff --git a/scripts_src/abbey/abdeathc.ssl b/scripts_src/abbey/abdeathc.ssl index 4e04c72..bed1f5a 100644 --- a/scripts_src/abbey/abdeathc.ssl +++ b/scripts_src/abbey/abdeathc.ssl @@ -79,7 +79,7 @@ end procedure critter_p_proc begin - if (self_can_see_dude and (tile_distance_objs(self_obj,dude_obj) <= 7)) then begin + if (self_can_see_dude and (tile_distance_objs(self_obj,dude_obj) <= 7)) then begin // phobos2077: add distance check attack(dude_obj); end diff --git a/scripts_src/generic/_custom_door.ssl b/scripts_src/generic/_custom_door.h similarity index 99% rename from scripts_src/generic/_custom_door.ssl rename to scripts_src/generic/_custom_door.h index df4791e..7ce8afb 100644 --- a/scripts_src/generic/_custom_door.ssl +++ b/scripts_src/generic/_custom_door.h @@ -2,12 +2,9 @@ Customizable door. Use from another script by setting defines */ - /* Include Files */ #include "../headers/define.h" -#define SCRIPT_REALNAME "zimtldor" - #define NAME SCRIPT_DOOR #include "../headers/command.h" @@ -1547,4 +1544,4 @@ procedure Damage_Door(variable dmg) begin end end -end \ No newline at end of file +end diff --git a/scripts_src/newreno/nibasdor.ssl b/scripts_src/newreno/nibasdor.ssl index ff11ce3..97d8fd5 100644 --- a/scripts_src/newreno/nibasdor.ssl +++ b/scripts_src/newreno/nibasdor.ssl @@ -16,5 +16,5 @@ import variable bishop_stair_guard_obj; // TODO: try to use the new doors.h while keeping the watcher logic -#include "../generic/_custom_door.ssl" -#include "../headers/newreno.h" \ No newline at end of file +#include "../generic/_custom_door.h" +#include "../headers/newreno.h"