-+-+-+-+-+-+-+-+ START OF PART 89 -+-+-+-+-+-+-+-+ X`09remote = remote .or. ( index( trans, 'CPAC' ) .ne. 0 ) X X`09return X X`09end X`0C X`09logical function net_trade X X`09common`09/net_trade/`09remote X`09logical*1`09`09remote X X`09net_trade = remote X`09return X X`09end X`0C X`09logical function already_playing X X`09common /info/`09uaccount, uusername X`09common /result/`09already computed, answer X X`09integer*4`09who X`09integer*4`09pid, upid X`09character*8`09account, uaccount X`09character*12`09username, uusername X`09character*15`09prcnam, uprcnam X`09character*39`09image, uimage X`09integer*4`09status, state X`09integer*2`09jpi_list(25) X`09common`09/jpi/`09jpi_list X`09integer*4`09sys$getjpi X`09integer`09`09l X`09character*79`09line X`09integer`09`09l2 X`09character*79`09line2 X`09logical`09`09already computed /.false./ X`09logical`09`09answer X X`09external`09ss$_nomoreproc X`09external`09ss$_nopriv X`09external`09ss$_suspended X X`09call setup_jpi( upid, uaccount, uusername, uprcnam, uimage ) X`09call sys$getjpiw( , , , jpi_list, status, , ) X X`09who = -1 X`09call setup_jpi( pid, account, username, prcnam, image ) X10`09call sys$getjpiw( , who, , jpi_list, status, , ) X`09if( status .eq. %loc( ss$_nomoreproc ) ) goto 80 X`09if(`09status .eq. %loc( ss$_suspended ) X`091`09.or. status .eq. %loc( ss$_nopriv ) X`091`09.or. pid .eq. upid X`091`09.or. account .ne. uaccount X`091`09.or. index( image, '`5BGM99.' ).eq.0 X`091`09`09) goto 10 X X`09answer = .true. X`09goto 90 X X80`09answer = .false. X X90`09already computed = .true. X`09already_playing = .false. !answer X`09return X X`09end X`0C X`09subroutine`09setup_jpi( pid, account, username, prcnam, image ) X X`09integer*2`09jpi_list(32) X`09common`09/jpi/`09jpi_list X X`09integer*2`09jpi_1length`09, jpi_1function X`09integer*4`09jpi_1buffer`09, jpi_1extra X`09integer*2`09jpi_2length`09, jpi_2function X`09integer*4`09jpi_2buffer`09, jpi_2extra X`09integer*2`09jpi_3length`09, jpi_3function X`09integer*4`09jpi_3buffer`09, jpi_3extra X X`09integer*4`09jpi_end X X`09equivalence`09(jpi_list( 1) , jpi_1length ) X`09equivalence`09(jpi_list( 2) , jpi_1function ) X`09equivalence`09(jpi_list( 3) , jpi_1buffer ) X`09equivalence`09(jpi_list( 5) , jpi_1extra ) X X`09equivalence`09(jpi_list( 7) , jpi_2length ) X`09equivalence`09(jpi_list( 8) , jpi_2function ) X`09equivalence`09(jpi_list( 9) , jpi_2buffer ) X`09equivalence`09(jpi_list(11) , jpi_2extra ) X X`09equivalence`09(jpi_list(13) , jpi_3length ) X`09equivalence`09(jpi_list(14) , jpi_3function ) X`09equivalence`09(jpi_list(15) , jpi_3buffer ) X`09equivalence`09(jpi_list(17) , jpi_3extra ) X X`09equivalence`09(jpi_list(19) , jpi_4length ) X`09equivalence`09(jpi_list(20) , jpi_4function ) X`09equivalence`09(jpi_list(21) , jpi_4buffer ) X`09equivalence`09(jpi_list(23) , jpi_4extra ) X X`09equivalence`09(jpi_list(25) , jpi_5length ) X`09equivalence`09(jpi_list(26) , jpi_5function ) X`09equivalence`09(jpi_list(27) , jpi_5buffer ) X`09equivalence`09(jpi_list(29) , jpi_5extra ) X X`09equivalence`09(jpi_list(31) , jpi_end ) X X`09external`09jpi$_pid X`09external`09jpi$_account X`09external`09jpi$_username X`09external`09jpi$_prcnam X`09external`09jpi$_imagname X X`09integer*4`09pid X`09character*8`09account X`09character*12`09username X`09character*15`09prcnam X`09character*39`09image X X`09jpi_1length = 4 X`09jpi_1function = %loc( jpi$_pid ) X`09jpi_1buffer = %loc( pid ) X`09jpi_1extra = 0 X X`09jpi_2length = 8 X`09jpi_2function = %loc( jpi$_account ) X`09jpi_2buffer = %loc( account ) X`09jpi_2extra = 0 X X`09jpi_3length = 12 X`09jpi_3function = %loc( jpi$_username ) X`09jpi_3buffer = %loc( username ) X`09jpi_3extra = 0 X X`09jpi_4length = 15 X`09jpi_4function = %loc( jpi$_prcnam ) X`09jpi_4buffer = %loc( prcnam ) X`09jpi_4extra = 0 X X`09jpi_5length = 39 X`09jpi_5function = %loc( jpi$_imagname ) X`09jpi_5buffer = %loc( image ) X`09jpi_5extra = 0 X X`09jpi_end = 0 X X`09return X`09end $ CALL UNPACK UW_ID.FOR;1 758539480 $ create 'f' X value X`20 X`09wizard1`09`09:= false; X`09wizard2`09`09:= false; X`09`7B God and Wizard passwords: God is for debugging purposes only. `7D X`09wdata`09`09:=( X`09`09(457867,180,157,35,220,14,127,160,163,38,68,135,50), X`09`09(698297,10,5,91,148,139,60,167,62,184,175,229,147) X`09`09`09 ); X`09used_line`09:= (22 of false); X`09death`09`09:= false; X`09total_winner`09:= false; X`09turn`09`09:= 0; X`09pclass`09`09:= 0; X`09print_stat`09:= 0; X`09coin$value`09:= (0,1,4,20,240,960,12480); X`20 X`09`7B For the testing of bits`09`09`09`09-RAK-`09`7D X`09bit_array`09:= ( X`09`09%X'00000001',`09`7B Bit number 1`09`7D X`09`09%X'00000002',`09`7B Bit number 2`09`7D X`09`09%X'00000004',`09`7B Bit number 3`09`7D X`09`09%X'00000008',`09`7B Bit number 4`09`7D X`09`09%X'00000010',`09`7B Bit number 5`09`7D X`09`09%X'00000020',`09`7B Bit number 6`09`7D X`09`09%X'00000040',`09`7B Bit number 7`09`7D X`09`09%X'00000080',`09`7B Bit number 8`09`7D X`09`09%X'00000100',`09`7B Bit number 9`09`7D X`09`09%X'00000200',`09`7B Bit number 10 `7D X`09`09%X'00000400',`09`7B Bit number 11 `7D X`09`09%X'00000800',`09`7B Bit number 12 `7D X`09`09%X'00001000',`09`7B Bit number 13 `7D X`09`09%X'00002000',`09`7B Bit number 14 `7D X`09`09%X'00004000',`09`7B Bit number 15 `7D X`09`09%X'00008000',`09`7B Bit number 16 `7D X`09`09%X'00010000',`09`7B Bit number 17 `7D X`09`09%X'00020000',`09`7B Bit number 18 `7D X`09`09%X'00040000',`09`7B Bit number 19 `7D X`09`09%X'00080000',`09`7B Bit number 20 `7D X`09`09%X'00100000',`09`7B Bit number 21 `7D X`09`09%X'00200000',`09`7B Bit number 22 `7D X`09`09%X'00400000',`09`7B Bit number 23 `7D X`09`09%X'00800000',`09`7B Bit number 24 `7D X`09`09%X'01000000',`09`7B Bit number 25 `7D X`09`09%X'02000000',`09`7B Bit number 26 `7D X`09`09%X'04000000',`09`7B Bit number 27 `7D X`09`09%X'08000000',`09`7B Bit number 28 `7D X`09`09%X'10000000',`09`7B Bit number 29 `7D X`09`09%X'20000000',`09`7B Bit number 30 `7D X`09`09%X'40000000',`09`7B Bit number 31 `7D X`09`09%X'80000000'`09`7B Bit number 32 `7D X`09`09`09); X`20 X`09`7B Operating hours for Moria`09`09`09`09-RAK-`09`7D X`09`7B`09X = Open; . = Closed`09`09`09`09`09`7D X`09days`09:=( X`09`09'SUN:XXXXXXXXXXXXXXXXXXXXXXXX`7C', X`09`09'MON:XXXXXXXX.........XXXXXXX`7C', X`09`09'TUE:XXXXXXXX.........XXXXXXX`7C', X`09`09'WED:XXXXXXXX.........XXXXXXX`7C', X`09`09'THU:XXXXXXXX.........XXXXXXX`7C', X`09`09'FRI:XXXXXXXX.........XXXXXXX`7C', X`09`09'SAT:XXXXXXXXXXXXXXXXXXXXXXXX`7C' X`09`09 ); X`20 X`09closing_flag := 0; X`20 X`09`7B Values for floor types`09`09`09`09`09`7D X`09blank_floor:= (0,0,0,false,false,false,false,false,0,0); X`09dopen_floor`09:= ( 1,true ); `7B Dark open floor`09`7D X`09lopen_floor`09:= ( 2,true ); `7B Light open floor`09`7D X`09corr_floor1`09:= ( 4,true ); `7B Corridor open floor`09`7D X`09corr_floor2`09:= ( 5,true ); `7B Room junction marker`09`7D X`09corr_floor3`09:= ( 6,true ); `7B Door type floor`09`7D X`09corr_floor4`09:= ( 7,false); `7B Secret door type floor`7D X`09`7B Floor values 8 and 9 are used in generate`09`09`7D X`09rock_wall1`09:= ( 10,false); `7B Granite rock wall`09`7D X`09rock_wall2`09:= ( 11,false); `7B Magma rock wall`09`7D X`09rock_wall3`09:= ( 12,false); `7B Quartz rock wall`09`7D X`09boundry_wall`09:= ( 15,false); `7B Indestructable wall`09`7D X`09water1`09`09:= ( 16,true);`09`7B Water on floor`09`7D X`09water2`09`09:= ( 17,true);`09`7B Water on room floor`09`7D X`09water3`09`09:= ( 18,true);`09`7B Lit water on floor`09`7D X`20 X`09`7B Player record is special`09`09`09`09`09`7D X`09py`09`09:=`09( X`09(0,0,(0,0,0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0,0,0),3, X`09 ' ',' ',' ',' ',' ',' ', X`09 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, X`09 ('','','','',''),false,0,0,0), X`09((0,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0)), X`09(false,false,0,0,0,0,0,7500,2,0,0,0,false, X`09 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, X`09 false,false,false,false,false,false,false,false,false, X`09 false,false,false,(false,false,false,false,false,false),false, X`09 0,0,0,0,0,0,0,0,0,0,false,false) X`09`09`09`09); X X`09key_of`09:= (6,9,8,7,4,1,2,3,5); X`09oct_of`09:= (5,6,7,4,8,0,3,2,1); X`09dx_of`09:= (-1,0,1,-1,0,1,-1,0,1); X`09dy_of`09:= (1,1,1,0,0,0,-1,-1,-1); X`09bare_hands`09:= '1d1'; X`20 X`09acc_exp`09`09:= 0.0; X`20 X`09`7B Each character class has a list of spells they can use. In`09`7D X`09`7B cases the entire array is blank`09`09`09`09`7D X`20 X`09magic_spell :=`09 (`09 (`09`09 `7B Warrior`09 `7D X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false), X (''`09`09`09`09,99,99,`09 0, 0,false) X`09`09`09`09`09), X`09`09`09`09`09(`09`09`7B Mage`09`09`7D X`7B 1`7D ('Magic Missile'`09`09 , 1, 1, 5, 22,false), X`7B 2`7D ('Detect Monsters'`09`09 , 1, 1, 5, 23,false), X`7B 3`7D ('Phase Door'`09`09 , 1, 2, 4, 24,false), X`7B 4`7D ('Light Area'`09`09 , 1, 2, 4, 26,false), X`7B 5`7D ('Cure Light Wounds'`09 , 3, 3, 8, 25,false), X`7B 6`7D ('Find Hidden Traps/Doors'`09 , 3, 3, 6, 55,false), X`7B 7`7D ('Stinking Cloud'`09`09 , 3, 4, 8, 27,false), X`7B 8`7D ('Confusion'`09`09 , 3, 4, 6, 30,false), X`7B 9`7D ('Lightning Bolt'`09`09 , 5, 4, 25, 30,false), X`7B10`7D ('Trap/Door Destruction'`09 , 5, 5, 30, 30,false), X`7B11`7D ('Sleep I'`09`09`09 , 5, 5, 20, 30,false), X`7B12`7D ('Cure Poison'`09`09 , 5, 5, 25, 35,false), X`7B13`7D ('Shadow Door'`09`09 , 7, 6, 35, 35,false), X`7B14`7D ('Remove Curse'`09`09 , 7, 6, 40, 50,false), X`7B15`7D ('Frost Bolt'`09`09 , 7, 6, 50, 40,false), X`7B16`7D ('Create Food'`09`09 , 7, 6, 50, 40,false), X`7B17`7D ('Infravision'`09`09 , 7, 6, 50, 40,false), X`7B18`7D ('Invisibility'`09`09 , 7, 6, 60, 35,false), X`7B19`7D ('Turn Stone to Mud'`09 , 9, 7, 75, 44,false), X`7B20`7D ('Recharge Item I'`09`09 , 9, 7, 90, 75,false), X`7B21`7D ('Sleep II'`09`09 , 9, 7, 75, 45,false), X`7B22`7D ('Phantasmal Force'`09 ,11, 7, 80, 50,false), X`7B23`7D ('Polymorph Other'`09`09 ,11, 7,100, 45,false), X`7B24`7D ('Identify'`09`09 ,11, 7, 75, 99,false), X`7B25`7D ('Ring of Frost'`09`09 ,13, 7, 75, 45,false), X`7B26`7D ('Sleep III'`09`09 ,13, 7, 90, 50,false), X`7B27`7D ('Hold Monster'`09`09 ,15, 9,100, 50,false), X`7B28`7D ('Fire Bolt'`09`09 ,15, 9,100, 50,false), X`7B29`7D ('Slow Creature'`09`09 ,17, 9,125, 50,false), X`7B30`7D ('Protection from Magic'`09 ,17, 9,125, 55,false), X`7B31`7D ('Frost Ball'`09`09 ,19,12,150, 55,false), X`7B32`7D ('Death Spell'`09`09 ,19,18,200, 55,false), X`7B33`7D ('Ring of Fire'`09`09 ,21,12,175, 60,false), X`7B34`7D ('Recharge Item II'`09 ,21,12,175, 90,false), X`7B35`7D ('Teleport Other'`09`09 ,23,15,200, 60,false), X`7B36`7D ('Haste Self'`09`09 ,25,15,250, 65,false), X`7B37`7D ('Fire Ball'`09`09 ,28,18,350, 65,false), X`7B38`7D ('Power Word: Destruction'`09 ,31,21,500, 80,false), X`7B39`7D ('Power Word: Kill'`09 ,34,25,600, 80,false), X`7B40`7D ('Genocide'`09`09 ,37,25,800, 95,false) X`09`09`09), X`09`09`09`09`09(`09`09`7B Priest`09`7D X`7B 1`7D ('Detect Evil'`09`09 , 1, 1, 3, 10,false), X`7B 2`7D ('Cure Light Wounds'`09 , 1, 2, 4, 15,false), X`7B 3`7D ('Bless'`09`09`09 , 1, 2, 3, 20,false), X`7B 4`7D ('Remove Fear'`09`09 , 1, 2, 3, 25,false), X`7B 5`7D ('Call Light'`09`09 , 3, 2, 6, 25,false), X`7B 6`7D ('Find Traps'`09`09 , 3, 3, 8, 27,false), X`7B 7`7D ('Detect Doors/Stairs'`09 , 3, 3, 8, 27,false), X`7B 8`7D ('Slow Poison'`09`09 , 3, 3, 10, 28,false), X`7B 9`7D ('Blind Creature'`09`09 , 5, 4, 16, 29,false), X`7B10`7D ('Portal'`09`09`09 , 5, 4, 20, 30,false), X`7B11`7D ('Cure Medium Wounds'`09 , 5, 4, 20, 32,false), X`7B12`7D ('Ray of Sanctification'`09 , 5, 4, 20, 40,false), X`7B13`7D ('Heroism'`09`09`09 , 7, 4, 20, 40,false), X`7B14`7D ('Sanctuary'`09`09 , 7, 5, 30, 36,false), X`7B15`7D ('Remove Curse'`09`09 , 7, 6, 35, 38,false), X`7B16`7D ('Resist Heat and Cold'`09 , 7, 7, 35, 38,false), X`7B17`7D ('Silence'`09`09`09 , 9, 7, 40, 40,false), X`7B18`7D ('Resist Petrification'`09 , 9, 7, 40, 40,false), X`7B19`7D ('Neutralize Poison'`09 , 9, 7, 40, 38,false), X`7B20`7D ('Cure Serious Wounds'`09 , 9, 7, 40, 40,false), X`7B21`7D ('Chant'`09`09`09 ,11, 8, 20, 34,false), X`7B22`7D ('Sense Invisible'`09`09 ,11, 8, 40, 42,false), X`7B23`7D ('Protection from Evil'`09 ,11, 8, 50, 42,false), X`7B24`7D ('Earthquake'`09`09 ,11, 9, 60, 55,false), X`7B25`7D ('Create Food and Drink'`09 ,13, 9, 30, 38,false), X`7B26`7D ('Sense Surroundings'`09 ,13,10, 60, 45,false), X`7B27`7D ('Orb of Draining'`09`09 ,13,10, 40, 58,false), X`7B28`7D ('Cure Critical Wounds'`09 ,15,11, 65, 45,false), X`7B29`7D ('Turn Undead'`09`09 ,15,12, 80, 50,false), +-+-+-+-+-+-+-+- END OF PART 89 +-+-+-+-+-+-+-+-