home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / monhl104 / part30 < prev    next >
Encoding:
Internet Message Format  |  1992-08-02  |  42.7 KB

  1. Path: uunet!mcsun!news.funet.fi!hydra!klaava!hurtta
  2. From: Kari.Hurtta@Helsinki.FI (Kari E. Hurtta)
  3. Newsgroups: vmsnet.sources.games
  4. Subject: Monster Helsinki V 1.04 - part 30/32
  5. Keywords: Monster, a multiplayer adventure game
  6. Message-ID: <1992Jun14.104914.14391@klaava.Helsinki.FI>
  7. Date: 14 Jun 92 10:49:14 GMT
  8. Sender: hurtta@klaava.Helsinki.FI (Kari Hurtta)
  9. Followup-To: vmsnet.sources.d
  10. Organization: University of Helsinki
  11. Lines: 1463
  12.  
  13. Archieve-name: monster_helsinki_104/part30
  14. Author: Kari.Hurtta@Helsinki.FI
  15. Product: Monster Helsinki V 1.04
  16. Environment: VMS, Pascal
  17. Part: 30/32
  18.  
  19. -+-+-+-+-+-+-+-+ START OF PART 30 -+-+-+-+-+-+-+-+
  20. X  Palauttaa arvonaan (toiminnan laukaisseen) pelaajan mukana olevien`032
  21. X  esineiden listan.
  22. X
  23. X  Tulkinta:
  24. X    tulos - lista
  25. X4 players
  26. X  Funktio: players ()
  27. X
  28. X  Palauttaa arvonaan niiden pelaajien listan, jotka ovat samas-
  29. X  sa huoneessa kuin monster.
  30. X
  31. X  Virhetilanteet:
  32. X    - Suorituksessa oleva koodi ei ohjaa monsteria
  33. X      > Tulos: niiden pelaajien lista, jotka ovat samassa huone-
  34. X         essa kuin (toiminnan laukaissut) pelaaja.
  35. X
  36. X  Tulkinta:
  37. X     tulos - lista
  38. X4 objects
  39. X  Funktio: objects ()
  40. X
  41. X  Palauttaa arvonaan niiden esineden listan, jotka ovat samassa`032
  42. X  huoneessa kuin monster.
  43. X
  44. X  Virhetilanteet:
  45. X     - Suorituksessa oleva koodi ei ohjaa monsteria
  46. X       > Tulos: Niiden esineiden lista, jota ovat samassa huone-
  47. X         essa kuin (toiminnan laukaissut) pelaaja.
  48. X
  49. X  Tulkinta:
  50. X     tulos - lista
  51. X4 get
  52. X  Funktio: get (p1)
  53. X
  54. X  Laskee parametrin p1 arvon.
  55. X
  56. X  Ottaa maasta monsterin mukaan p1:n ilmoittamat esineet.
  57. X
  58. X  Palauttaa arvonaan niiden esineiden lista, jotka todella saa-
  59. X  tiin otettua.
  60. X
  61. X  Virhetilanteet:
  62. X     - Suorituksessa oleva koodi ei ohjaa monsteria
  63. X       > Ei toimintaa, tulos: Tyhj`228 merkkijono/lista
  64. X
  65. X  Tulkinta:
  66. X     p1    - lista
  67. X     tulos - lista
  68. X4 drop
  69. X  Funktio: drop (p1)
  70. X
  71. X  Laskee parametrin p1 arvon.
  72. X
  73. X  Pudottaa maahan monsterilta p1:n ilmoittamat esineet.
  74. X
  75. X  Palauttaa arvonaan listan niist`228 esineist`228, jotka`032
  76. X  todella saatiin pudotettua.
  77. X
  78. X  Virhetilanteet:
  79. X     - Suorituksessa oleva koodi ei ohjaa monsteria
  80. X       > Ei toimintaa, tulos: Tyhj`123 merkkijono/lista
  81. X
  82. X  Tulkinta:
  83. X     p1    - lista
  84. X     tulos - lista
  85. X4 and
  86. X  Funktio: and (p1,p2)
  87. X
  88. X  Laskee parametrien p1 ja p2 arvon.
  89. X
  90. X  Palauttaa listan, jossa on ne alkiot, jotka ovat sek`228 p1:ss`228`032
  91. X  ett`228 p2:ssa. Jokainen alkio esiintyy tuloksessa vain kerran.
  92. X
  93. X  Tulkinta:
  94. X     p1    - lista
  95. X     p2    - lista
  96. X     tulos - lista
  97. X4 move
  98. X  Funktio: move (p1)
  99. X
  100. X  Laskee parametrin p1 arvon.
  101. X
  102. X  Siirt`228`228 monsterin p1:n ilmoittamaan huoneeseen.
  103. X
  104. X  Palauttaa huoneen nimen, jonne siirsi monsterin.
  105. X
  106. X  Vaatimukset:
  107. X      - Jos kohde huone ei ole julkinen eik`228 monsterin omistajan`032
  108. X        omistuksessa, niin monsterilla pit`228`228 olla poof -privile-
  109. X        gio.
  110. X
  111. X  Virhetilanteet:
  112. X      - Kohde ei ole huone
  113. X        > Tulos: tyhj`123 nimi/merkkijono
  114. X      - Siirto ei onnistu jostain syyst`228 (esim. poof privilegio-
  115. X        ta olisi tarvittu)
  116. X        > Tulos: tyhj`228 nimi/merkkijono
  117. X      - Suoritettava koodi ei ohjaa monsteria
  118. X        > Tulos: tyhj`228 nimi/merkkijono
  119. X
  120. X  Tulkinta:
  121. X      p1    - nimi
  122. X      tulos - nimi
  123. X4 pmove
  124. X  Funktio: pmove (p1)
  125. X
  126. X  Laskee parametrin p1 arvon.
  127. X
  128. X  Siirt`228`228  (toiminnan laukaisseen)  pelaajan p1:n  ilmoittamaan`032
  129. X  huoneeseen.
  130. X
  131. X  Palauttaa huoneen nimen, jonne siirsi pelaajan.
  132. X
  133. X  Vaatimukset:
  134. X      - Jos kohde huone ei ole julkinen eik`228 monsterin omistajan`032
  135. X        omistuksessa, niin monsterilla pit`228`228 olla poof -privilegio.
  136. X      - Koodi pit`228`228 olla privileged moodissa.
  137. X
  138. X  Virhetilanteet:
  139. X      - Kohde ei ole huone
  140. X        > Tulos: tyhj`228 nimi/merkkijono
  141. X      - Siirto ei onnistu jostain syyst`228 (esim. poof privilegio-
  142. X        ta olisi tarvittu)
  143. X        > Tulos: tyhj`228 nimi/merkkijono
  144. X      - Suoritettava koodi ei ohjaa monsteria ja  poof  privile-
  145. X        giota olisi tarvittu
  146. X        > Tulos: tyhj`228 nimi/merkkijono
  147. X      - Koodi ei ole privileged-moodissa
  148. X        > Tulos: tyhj`228 nimi/merkkijono
  149. X
  150. X  Tulkinta:
  151. X      p1    - nimi
  152. X      tulos - nimi
  153. X4 if
  154. X  Funktio: if (p1,p2,p3)
  155. X
  156. X  Laskee parametrin p1 arvon.
  157. X
  158. X  Laskee parametrin p2 arvon, jos p1 ei ollut tyhj`228, muutoin`032
  159. X  laskee parametrin p3 arvon.
  160. X
  161. X  Palauttaa p2 tai p3, riippuen siit`228 kumman arvon laski.
  162. X
  163. X  Tulkinta:
  164. X     p1    - merkkijono
  165. X     p2    - merkkijono
  166. X     p3    - merkkijono
  167. X     tulos - merkkijono
  168. X
  169. X  Huomautus:
  170. X      - Puuttuvat parametrit tulkitaan tyhjiksi (t`228m`228 koskee`032
  171. X        my`246s muita funktiota).
  172. X      - Koodin ei siis tarvitse ohjata monsteria,  jos  poof`032
  173. X        privilegiota ei tarvita.
  174. X4 where
  175. X  Funktio: where (p1)
  176. X
  177. X  Laskee parametrin p1 arvon.
  178. X
  179. X  Palauttaa huoneen, jossa pelaaja p1 on.
  180. X
  181. X  Virhetilanteet:
  182. X     - p1 ei ole pelajan nimi
  183. X       > tulos: tyhj`228 nimi/merkkijono
  184. X     - Pelaaja p1 ei pelaa funktion kutsuhetkell`228
  185. X       > tulos: huone, johon pelaaja lopetti pelaamisen
  186. X
  187. X  Tulkinta:
  188. X     p1    - nimi
  189. X     tulos - nimi
  190. X4 null
  191. X  Funktio: null (p1,p2,p3,...)
  192. X
  193. X  Laskee parametrien p1, p2 ja p3 arvon.
  194. X
  195. X  Palautaa tyhj`228n merkkijonon.
  196. X
  197. X  Tulkinta:
  198. X     p1   - merkkijono
  199. X     p2   - merkkijono
  200. X     p3   - merkkijono
  201. X
  202. X  Huomautus:
  203. X     - Sopii per`228kk`228isen toiminnan toteuttamiseen.
  204. X4 prog
  205. X  Funktio: prog (p1, p2, p3, ...)
  206. X
  207. X  Palauttaa viimeisen parameterin arvon.
  208. X
  209. X  Palautaa tyhj`228n merkkijonon.
  210. X
  211. X  Tulkinta:
  212. X     p1   - merkkijono
  213. X     p2   - merkkijono
  214. X          .
  215. X          .
  216. X          .
  217. X  Huomautus:
  218. X     - Sopii per`228kk`228isen toiminnan toteuttamiseen.
  219. X
  220. X4 not
  221. X  Funktio: not (p1)
  222. X
  223. X  Laskee parametrin p1 arvon.
  224. X
  225. X  Palauttaa "TRUE", jos p1 on "", muutoiin palauttaa "".
  226. X
  227. X  Tulkinta:
  228. X     p1    - merkkijono
  229. X     tulos - merkkijono (?) / totuusarvo
  230. X4 random
  231. X  Funktio: random (p1)
  232. X
  233. X  Laskee parametrin p1 arvon.
  234. X
  235. X  Palauttaa yhden satunnaisesti valitun alkion p1:n listasta.
  236. X
  237. X  Virhetilanteet:
  238. X     - p1 on tyhj`228
  239. X       > Tulos: tyhj`228 nimi/merkkijono
  240. X
  241. X  Tulkinta:
  242. X     p1    - lista
  243. X     tulos - nimi
  244. X4 strip
  245. X  Funktio: strip (p1)
  246. X
  247. X  Laskee parametrin p1 arvon.
  248. X
  249. X  Palauttaa p1:n muutettuna kirjaimet A-Z kirjaimiksi a-z ja`032
  250. X  muut merkit korvattuna v`228lily`246nnill`228.
  251. X
  252. X  Tulkinta:
  253. X     p1    - merkkijono
  254. X     tulos - merkkijono
  255. X
  256. X  Huomatus:
  257. X     - Useiden v`228lily`246ntien sarja (kuten kaikissa muissakin`032
  258. X       funktiossa) korvaatuu yhdell`228 v`228lilynill`228.
  259. X     - Funktio on k`228ytt`246kelpoinen poistettaessa v`228limerkke-
  260. X       j`228 pelaajan puheesta  (valitettvasti  samalla  menee`032
  261. X       skanditkin...).
  262. X4 experience
  263. X  Funktio: experience (p1)
  264. X
  265. X  Laskee parametrin p1 arvon.
  266. X
  267. X  Palauttaa pelaajan p1 pisteet.
  268. X
  269. X  Virhetilanteet:
  270. X     - p1 ei ole pelaajan nimi
  271. X       > Tulos: Tyhj`228 merkkijono
  272. X
  273. X  Tulkinta:
  274. X     p1    - nimi
  275. X     tulos - luku
  276. X4 set_experience
  277. X  Funktio: set experience (p1)
  278. X
  279. X  Laskee parametrin p1 arvon.
  280. X
  281. X  Asettaa (toiminnnan laukaisseen) pelaajan kokemukseksi p1:n.
  282. X
  283. X  Palauttaa p1:n.
  284. X
  285. X  Vaatimukset:
  286. X     - Monserilla pit`228`228 olla experience -privilegio.
  287. X     - Pelaaja ei voi olla monsterin omistaja tai se, joka
  288. X       on ladannut koodin.
  289. X
  290. X  Virhetilanteet:
  291. X     - Koodi ei ohjaa monsteria
  292. X       > Ei toimintaa, tulos: tyhj`228 merkkijono
  293. X     - Monsterilla ei experience privilegiota
  294. X       > Ei toimintaa, tulos: tyhj`228 merkkijono
  295. X     - (Toiminnan laukaissut) pelaaja on monsterin omistaja tai
  296. X       koodin lataaja.
  297. X       > Ei toimintaa, tulos: tyhj`228 merkkijono
  298. X
  299. X  Tulkinta:
  300. X     p1    - luku
  301. X     tulos - luku
  302. X
  303. X  Huomautus:
  304. X     - Funktiolla ei voi muuttaa omaa kokemusta.
  305. X4 plus
  306. X  Funktio: plus (p1,p2)
  307. X
  308. X  Laskee parametrien p1 ja p2 arvon.
  309. X
  310. X  Palauttaa lukujen p1 ja p2 summan.
  311. X
  312. X  Virhetilanteet:
  313. X     - p1 tai p2 ei ole luku
  314. X       > Tulos: tyhj`228 merkkijono
  315. X     - Lukualueen ylivuoto
  316. X       > Tulos: tyhj`228 merkkijono
  317. X
  318. X  Tulkinta:
  319. X     p1    - luku
  320. X     p2    - luku
  321. X     tulos - luku
  322. X4 difference
  323. X  Funktio: difference(p1,p2)
  324. X
  325. X  Laskee parametrien p1 ja p2 arvon.
  326. X
  327. X  Palauttaa erotuksen p1 miinus p2.
  328. X
  329. X  Virhetilanteet:
  330. X     - p1 tai p2 ei ole luku
  331. X       > Tulos: Tyhj`228 merkkijono
  332. X     - Lukualueen ylivuoto
  333. X       > Tulos: Tyhj`228 merkkijono
  334. X
  335. X  Tulkinta:
  336. X     p1    - luku
  337. X     p2    - luku
  338. X     tulos - luku
  339. X4 times
  340. X  Funktio: times(p1,p2)
  341. X
  342. X  Laskee parametrien p1 ja p2 arvon.
  343. X
  344. X  Palauttaa parametrien p1 ja p2 tulon.
  345. X
  346. X  Virhetilanteet:
  347. X     - Lukualueen ylivuoto
  348. X       > Tulos: Tyhj`228 merkkijono
  349. X     - p1 tai p2 eiv`123t ole lukuja
  350. X       > Tulos: Tyhj`228 merkkijono
  351. X
  352. X  Tulkinta:
  353. X     p1    - luku
  354. X     p2    - luku
  355. X     tulos - luku
  356. X4 quotient
  357. X  Funktio: quotient(p1,p2)
  358. X
  359. X  Laskee parametrien p1 ja p2 arvon.
  360. X
  361. X  Palauttaa p1 jaettuna p2:lla (kokonaislukujako).
  362. X
  363. X  Virhetilanteet;
  364. X     - p1 tai p2 ei ole luku
  365. X       > Tulos: Tyhj`228 merkkijono
  366. X     - p2 on nolla
  367. X       > Tulos: Tyhj`228 merkkijono
  368. X
  369. X  Tulkinta:
  370. X     p1    - luku
  371. X     p2    - luku
  372. X     tulos - luku
  373. X4 set_state
  374. X  Funktio: set state(p1)
  375. X
  376. X  Laskee parametrin p1 arvon.
  377. X
  378. X  Sijoittaa p1 koodikohtaiseen pysyv`123`123n muuttujaan.
  379. X
  380. X  Palauttaa p1:n.
  381. X
  382. X  Tulkinta:
  383. X     p1    - merkkijono
  384. X     tulos - merkkijono
  385. X
  386. X  Huomatus:`032
  387. X     - Muuttuja on koodikohtainen eli jokaisella monsterilla,`032
  388. X       ja huoneen ja esineen hookilla on oma muuttuja.`032
  389. X     - control -funktio ei vaikuta siihen, ett`123 mihin muuttu-
  390. X       jaan set state vaikuttaa.
  391. X4 get_state
  392. X  Funktio: get state(p1)
  393. X
  394. X  Lukee koodikohtaisen pysyv`228n muuttujan arvon.
  395. X
  396. X  Palauttaa muuttujan arvon.
  397. X
  398. X  Tulkinta:
  399. X     tulos - merkkijono
  400. X
  401. X  Huomatus:`032
  402. X     - Muuttuja on koodikohtainen eli jokaisella monsterilla,`032
  403. X       ja huoneen ja esineen hookilla on oma muuttuja. Saman
  404. X       esineen eri ilmentymill`228 on sama koodi, joten muuttu-
  405. X       jakin on yhteinen.                             `032
  406. X     - control -funktio ei vaikuta siihen, ett`228 mist`228 muuttu-
  407. X       jasta get state lukee arvon.
  408. X4 less
  409. X  Funktio: less(p1,p2)
  410. X
  411. X  Laskee parametrien p1 ja p2 arvon.
  412. X
  413. X  Jos p1 on pienempi kuin p2 palauttaa "TRUE", muutoin tyhj`228n`032
  414. X  merkkijonon.
  415. X
  416. X  Virhetilanteet:
  417. X     - p1 tai p2 ei ole luku
  418. X       > Tulos: Tyhj`228 merkkijono
  419. X
  420. X  Tulkinta:
  421. X     p1    - luku
  422. X     p2    - luku
  423. X     tulos - merkkijono, totuusarvo (?)
  424. X4 number
  425. X  Funktio: number(p1)
  426. X
  427. X  Laskee parametrin p1 arvon.
  428. X
  429. X  Palauttaa p1, jos p1 on luku, muutoin palauttaa tyhj`228n merkki-
  430. X  jonon.
  431. X
  432. X  Tulkinta:
  433. X    p1    - luku (?)
  434. X    tulos - luku (?)
  435. X4 health
  436. X  Funktio: health(p1)
  437. X
  438. X  Laskee parametrin p1 arvon.
  439. X
  440. X  Palauttaa pelaajan tai monsterin p1 voiman lukuarvon.
  441. X
  442. X  Virhetilanteet:
  443. X     - p1 ei ole palaajan tai monsterin nimi
  444. X       > Tulos: Tyhj`228 merkkijono
  445. X
  446. X  Tulkinta:
  447. X     p1    - nimi
  448. X     tulos - luku
  449. X4 all_objects
  450. X  Funktio: all objects()
  451. X
  452. X  Funktio palauttaa listan kaikkista esineist`123.
  453. X
  454. X  Virhetilanteet:
  455. X     - Esineit`228 on enemm`228n kuin mahtuu 1000 merkin listaan
  456. X       > Tulos: Niin monen ensimm`123isen esineen lista, jotka mah-
  457. X         tuivat 1000 merkkiin.
  458. X
  459. X  Tulkinta:
  460. X     - tulos: lista
  461. X
  462. X  Huomautus:
  463. X     - Jokainen m`228`228ritelty esine esiintyy listassa kerran riip-
  464. X       pumatta siit`228 kuinka monta kappaletta sit`228  on  olemassa`032
  465. X       (vaikka sit`228 olisi olemassa 0 kappaletta).
  466. X4 all_players
  467. X  Funktio: all players()
  468. X
  469. X  Funktio palauttaa listan kaikkista pelaajista ja hirvi`228ist`228.
  470. X
  471. X  Virhetilanteet:
  472. X     - Pelaajia on enemm`228n kuin mahtuu 1000 merkin listaan
  473. X       > Tulos: Niin monen ensimm`228isen pelaajan lista, jotka`032
  474. X         mahtuivat 1000 merkkiin.
  475. X
  476. X  Tulkinta:
  477. X     - tulos: lista
  478. X4 all_rooms
  479. X  Funktio: all rooms()
  480. X
  481. X  Funktio palauttaa listan kaikkista huoneista.
  482. X
  483. X  Virhetilanteet:
  484. X   - Huoneita on enemm`228n kuin mahtuu 1000 merkin listaan
  485. X     > Tulos: Niin monen ensimm`123isen huoneen lista, jotka mah-
  486. X       tuivat 1000 merkkiin.
  487. X
  488. X  Tulkinta:
  489. X     - tulos: lista
  490. X4 control
  491. X  Funktio: control(p1,p2)
  492. X
  493. X  Funktio laskee parametrin p1 arvon.
  494. X
  495. X  Funktio asettaa parametrin p2 laskemisen ajaksi ohjattavaksi`032
  496. X  monsteriksi p1:n. Suoritettavalla  koodilla  ja  monsterilla`032
  497. X  pit`228`228 olla sama omistaja.
  498. X
  499. X  Palauttaa p2:n.
  500. X
  501. X  Virhetilanteet:
  502. X     - p1 ei ole monsterin nimi
  503. X       > Funktio ei laske paramerin p2 arvoa - Tulos: Tyhj`228 merk-
  504. X         kijono
  505. X     - Suoritettavalla koodilla ja p1 m`228`228r`228`228mm`228ll`228 monster
  506. Villa ei`032
  507. X       ole sama omistaja
  508. X       > Funktio ei laske parametrin p2 arvoa - Tulos: Tyhj`228 merk-
  509. X         kijono
  510. X
  511. X  Tulkinta:
  512. X     p1    - nimi
  513. X     p2    - merkkijono
  514. X     tulos - merkkijono
  515. X
  516. X  Huomautus:
  517. X     - Vaadittavat privilegiot katsotaan ohjattavalta monseril-
  518. X       ta, joten funktio vaikuttaa niihin
  519. X     - Funktio ei vaikuta privileged -moodiin
  520. X     - p2:n suorituksen ajaksi funktio sijoittaa muuttujaan`032
  521. X       monster name ohjattavan monserin nimen eli p1:n
  522. X4 include
  523. X  Funktio: include(p1,p2)
  524. X
  525. X  Funktio laskee parametrien p1 ja p2 arvon.
  526. X
  527. X  Palauttaa p2:n, jos p1 sis`228lt`228`228 p2:n, muutoin tyhj`123n merkki-
  528. X  jonon.
  529. X
  530. X  Virhetilanteet:
  531. X     - p2 on tyhj`228 merkkijono
  532. X       > Tulos: Tyhj`228 merkkijono
  533. X     - p1 on tyhj`123 merkkijono
  534. X       > Tulos: tyhj`228 merkkijono
  535. X
  536. X  Tulkinta:
  537. X     p1    - merkkijono
  538. X     p2    - merkkijono
  539. X     tulos - merkkijono
  540. X
  541. X  Huomautus:
  542. X     - Nuo 'virhetilanteet' sopivat kyll`228 funktion normaalik`228y-
  543. X       t`246ksen puitteisiin eli kyseess`228 ei ole todellisia virhe-
  544. X       tilanteita -  mutta tilanteet ovat sen verran erikoisia,`032
  545. X       ett`228 ne oli syyt`228 mainita erikseen.
  546. X4 exclude
  547. X  Funktio: exclude (p1,p2)
  548. X
  549. X  Laskee parametrien p1 ja p2 arvon.
  550. X
  551. X  Palauttaa arvonaan ne alkiot listasta p1, joita ei ole listas-
  552. X  sa p2.
  553. X
  554. X  Tulkinta:
  555. X    p1    - lista
  556. X    p2    - lista
  557. X    tulos - lista
  558. X4 get_remote_state
  559. X  Funktio: get remote state (p1)
  560. X
  561. X  Laskee parametrin p1 arvon.
  562. X
  563. X  Palauttaa arvonaan p1 ilmoittaman monsterin pysyv`228n muuttujan`032
  564. X  arvon (eli state kent`228n arvon).  Monsterilla  pit`228`228 olla sama`032
  565. X  omistaja kuin suoritettavalla koodilla tai monsteri pit`228`228 olla`032
  566. X  julkinen ja koodin ohjaamalla monsterilla pit`228`228 olla object`032
  567. X  -privilegio.
  568. X
  569. X  Virhetilanteet:
  570. X      - p1 ei ole monsterin nimi
  571. X        > Tulos: Tyhj`228 merkkijono
  572. X      - p1:ll`228 on eri omistaja kuin suoritettavalla koodilla
  573. X        > Tulos: Tyhj`228 merkkijono
  574. X      - p1 on julkinen ja koodi ei ohjaa monsteria
  575. X        > Tulos: Tyhj`228 merkkijono
  576. X      - p1 on julkinen ja koodin ohjaamalla monsterilla ei ole`032
  577. X        object -privilegiota
  578. X        > Tulos: Tyhj`228 merkkijono
  579. X
  580. X  Tulkinta:
  581. X     p1    - nimi
  582. X     tulos - merkkijono
  583. X4 set_remote_state
  584. X  Funktio: set remote state (p1,p2)
  585. X
  586. X  Laskee parametrien p1 ja p2 arvon.
  587. X
  588. X  Sijoittaa  p1  ilmoittaman  monsterin pysyv`228n muuttujaan p2:n`032
  589. X  arvon (eli state kent`228`228n). Monsterilla pit`228`228 olla sama omista-
  590. X  ja kuin suoritettavalla koodilla tai monsteri pit`228`228 olla jul-
  591. X  kinen ja koodin ohjaamalla monsterilla pit`228`228 olla object -pri-
  592. X  vilegio.
  593. X
  594. X  Palauttaa p2:n arvon.
  595. X
  596. X  Virhetilanteet:
  597. X      - p1 ei ole monsterin nimi
  598. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  599. X      - p1:ll`228 on eri omistaja kuin suoritettavalla koodilla
  600. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  601. X      - p1 on julkinen ja koodi ei ohjaa monsteria
  602. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  603. X      - p1 on julkinen ja koodin ohjaamalla monsterilla ei ole`032
  604. X        object -privilegiota
  605. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  606. X
  607. X  Tulkinta:
  608. X     p1    - nimi
  609. X     p2    - merkkijono
  610. X     tulos - merkkijono
  611. X4 remote_objects
  612. X  Funktio: remote objects (p1)
  613. X
  614. X  Laskee parametrin p1 arvon.
  615. X
  616. X  Palauttaa huoneessa p1 (maassa) olevien esineiden nimet.
  617. X
  618. X  Virhetilanteet:
  619. X      - p1 ei ole huoneen nimi
  620. X        > Tulos: Tyhj`123 merkkijono
  621. X
  622. X  Tulkinta:
  623. X     p1    - nimi
  624. X     tulos - lista
  625. X4 remote_players
  626. X  Funktio: remote players (p1)
  627. X
  628. X  Laskee parametrin p1 arvon.
  629. X
  630. X  Palauttaa huoneessa p1 olevien pelaajien nimet.
  631. X
  632. X  Virhetilanteet:
  633. X      - p1 ei ole huoneen nimi
  634. X        > Tulos: Tyhj`228 merkkijono
  635. X
  636. X  Tulkinta:
  637. X     p1    - nimi
  638. X     tulos - lista
  639. X
  640. X  Huomautus:
  641. X     - Pelaajien listaan ei sis`123lly monstereita toisin kuin all`032
  642. X       players(), lookup player() ja parse player() funktioiden`032
  643. X       kohdalla
  644. X     - Funktio toimii vastaavasti kuin players() funktio - pait-
  645. X       si, ett`228 huone valitaan parametrin avulla
  646. X4 heal
  647. X  Funktio: heal (p1)
  648. X
  649. X  Laskee parametrin p1 arvon.
  650. X
  651. X  Nostaa toiminnan laukaiseen pelaajan terveytt`228 (voimia) para-
  652. X  metrin ilmoittmalla m`228`228r`228ll`228.
  653. X
  654. X  Palauttaa p1:n.
  655. X
  656. X  Virhetilanteet:
  657. X      - p1 ei ole luku
  658. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  659. X      - p1 on negatiivinen
  660. X        > Ei toimintaa - tulos: Tyhj`228 merkkijono
  661. X
  662. X  Tulkinta:
  663. X`255    p1    - luku
  664. X     tulos - luku
  665. X
  666. X  Huomautus:`032
  667. X      -   Mik`228li (toiminnan laukaisseen) pelaajan nykyisen ter-
  668. X          veyden ja lis`228yksen summa on  suurempi  kuin pelaajan`032
  669. X          tason maksimiterveys, funktio asettaa pelaajalle t`228m`228n`032
  670. X          tason maksimiterveyden - t`228m`228  ei  kuitenkaan  vaikuta
  671. X          funktion palauttamaan arvoon.
  672. X4 duplicate
  673. X  Funktio: duplicate (p1)
  674. X
  675. X  Laskee parametrin p1 arvon.
  676. X
  677. X  Tekee niist`228 esineist`228, jotka on mainittu listassa p1 monste-
  678. X  rin mukaan uuden kappaleen. Esineill`228 ja monsterilla pit`228`228 ol-
  679. X  la sama omistaja tai monsterilla pit`228`228 olla object -privilegio.
  680. X
  681. X  Palauttaa listan niist`228 esineist`228, jotka todella sai tehty`228.
  682. X
  683. X  Virhetilanteet:
  684. X`009  - Koodi ei ohjaa monsteria
  685. X`009    > Ei toimintaa: tulos: Tyhj`228 merkkijono
  686. X          - Esineell`228 ei ole sama omistaja kuin monsterilla ja`032
  687. X            monsterilla ei ole object -privilegiota
  688. X`009    > Esinett`228 ei tule palautettavaan listaan eik`228 mons-
  689. X              terin mukaan.
  690. X          - Esine ei mahdu mukaan
  691. X`009    > Esinett`228 ei tule palautettavaan listaan eik`228 mons-
  692. X              terin mukaan.
  693. X
  694. X  Tulkinta:
  695. X     p1    - lista
  696. X     tulos - lista
  697. X4 pprint
  698. X  Funktio: pprint (p1,p2,p3,...)
  699. X  Funktio: pprint raw (p1,p2,p3,...)
  700. X
  701. X  Laskee parametrin p1,p2 ja p3 arvon.
  702. X
  703. X  Tulostaa (toiminnan laukaiseelle) pelaajalle parametrien teks-
  704. X  tin. Edellisen parametrin per`228`228n  funktio  lis`228`228  v`228lily`24
  705. V6nnin,`032
  706. X  jos seuraava alkaa kirjaimella tai numerolla.  Tekstin  per`228`228n`032
  707. X  funktio lis`228`228 pisteen, jos se loppuu kirjaimeen tai numeroon.`032
  708. X  Funktio aloittaa virkeen isolla  kirjaimella.  raw -versio  ei`032
  709. X  muokkaa teksti`228.
  710. X
  711. X  Palauttaa tulostamansa tekstin.
  712. X
  713. X  Virhetilanteet:
  714. X     - Teksti on pitempi kuin 1000 merkki`228
  715. X       > Osa tekstist`228 j`228`228 pois (sek`228 tuloksesta, ett`228 tulost
  716. Veesta).
  717. X
  718. X  Tulkinta:
  719. X     p1    - merkkijono
  720. X     p2    - merkkijono
  721. X     p3    - merkkijono
  722. X     tulos - merkkijono
  723. X
  724. X  Huomautus:
  725. X     - Rivijakoon ei ole mahdollista vaikuttaa. Funktio p`228`228tt`228`228`
  726. V032
  727. X       rivijaon itse.
  728. X4 print
  729. X  Funktio: print (p1,p2,p3,...)
  730. X  Funktio: print raw (p1,p2,p3,...)
  731. X
  732. X  Laskee parametrin p1,p2 ja p3 arvon.
  733. X
  734. X  Tulostaa monsterin kanssa  samassa  huoneessa  oleville pelaa-
  735. X  jille  parametrin tekstin. Edellisen parametrin per`228`228n funktio`032
  736. X  lis`228`228 v`228lily`246nnin, jos seuraava alkaa kirjaimella tai numerol-
  737. X  la. Tekstin per`228`228n funktio lis`228`228 pisteen,  jos se loppuu  kir-
  738. X  jaimeen tai numeroon. Funktio aloittaa virkkeen isolla kirjai-
  739. X  mella. raw -versio ei muokkaa teksti`228.
  740. X
  741. X  Palauttaa tulostamansa tekstin.
  742. X
  743. X  Virhetilanteet:
  744. X     - Suoritettava koodi ei ohjaa monsteria
  745. X        > Tulostaa toiminnan laukaisseen pelaajan kanssa samas-
  746. X          sa huoneessa oleville pelaajille parametrien tekstin,`032
  747. X          tulos: parametrien teksti
  748. X     - Teksti on pitempi kuin 1000 merkki`228
  749. X       > Osa tekstist`228 j`228`228 pois (sek`228 tuloksesta, ett`228 tulost
  750. Vees-
  751. X          ta).
  752. X
  753. X  Tulkinta:
  754. X      p1    - merkkijono
  755. X      p2    - merkkijono
  756. X      p3    - merkkijono
  757. X      tulos - merkkijono
  758. X
  759. X  Huomautus:
  760. X      - Jos (toiminan laukaissut) pelaaja on siis samassa huo-
  761. X        neessa kuin  monster, niin teksti tulostuu my`246s h`228nelle.
  762. X      - Eritt`228in monirivisill`228 viesteill`228 on mahdollista yli
  763. X        kuormittaa  Monsterin tapahtumienv`228litysj`228rjestelm`228 (jo-
  764. X        kainen rivi on yksi tapahtuma), jolloin osaa tapahtumis-
  765. X        ta on mahdollista hukkua.
  766. X      - Rivijakoon ei ole mahdollista vaikuttaa. Funktio p`228`228tt`228`228
  767. V`032
  768. X        rivijaon itse.
  769. X4 oprint
  770. X  Funktio: oprint (p1,p2,p3,...)
  771. X  Funktio: oprint raw (p1,p2,p3,...)
  772. X
  773. X  Laskee parametrin p1,p2 ja p3 arvon.
  774. X
  775. X  Tulostaa monsterin kanssa samassa huoneessa oleville  pelaajil-
  776. X  le parametrien tekstin, paitsi toiminnan laukaiseelle pelaajal-
  777. X  le. Edellisen parametrin per`228`228n funktio lis`228`228  v`228lily`246nn
  778. Vin, jos`032
  779. X  seuraava alkaa kirjaimella tai numerolla.  Tekstin per`228`228n funk-
  780. X  tio lis`228`228 pisteen, jos se loppuu kirjaimeen tai numeroon. Funk-
  781. X  tio aloittaa virkkeen isolla kirjaimella.  raw -versio ei muok-
  782. X  kaa teksti`228.
  783. X
  784. X  Palauttaa tulostamansa tekstin.
  785. X`032
  786. X  Virhetilanteet:
  787. X     - Suoritettava koodi ei ohjaa monsteria
  788. X       > Tulostaa toiminnan laukaisseen pelaajan kanssa samas-
  789. X         sa huoneessa oleville pelaajille parametrien  tekstin`032
  790. X         (paitsi toiminnan laukaiseelle  pelaajalle), tulos:`032
  791. X         tulostettava teksti
  792. X     - Teksti on pitempi kuin 1000 merkki`228
  793. X       > Osa tekstist`228 j`228`228 pois (sek`228 tuloksesta, ett`228 tulos-
  794. X         teesta).
  795. X
  796. X  Tulkinta:
  797. X      p1    - merkkijono
  798. X      p2    - merkkijono
  799. X      p3    - merkkijono
  800. X      tulos - merkkijono
  801. X
  802. X  Huomautus:
  803. X      - Eritt`228in monirivisill`228 viesteill`228 on mahdollista yli-
  804. X        kuormittaa Monsterin tapahtumienv`228litysj`228rjestys (jo-
  805. X        kainen rivi on yksi tapahtuma), jolloin osan tapahtu-
  806. X        mista on mahdollista hukkua.
  807. X      - Rivijakoon ei ole mahdollista vaikuttaa. Funktio p`228`228t-
  808. X        t`228`228 rivijaon itse.
  809. X4 pget
  810. X  Funktio: pget (p1)
  811. X
  812. X  Laskee parametrin p1 arvon.
  813. X
  814. X  Ottaa maasta (toiminnan laukaisseen) pelaajan mukaan p1:n il-
  815. X  moittamat esineet.
  816. X
  817. X  Palauttaa arvonaan listan niist`228 esineist`228, jotka todella saa-
  818. X  tiin otettua.
  819. X
  820. X  Vaatimukset:
  821. X     - koodi pit`228`228 olla privileged-moodissa
  822. X
  823. X  Virhetilanteet:
  824. X     - koodi ei ole privileged moodissa
  825. X       > Ei toimintaa, funktio ei laske parametrin p1 arvoa,
  826. X         tulos: Tyhj`228 merkkijono/lista                    `032
  827. X
  828. X  Tulkinta:
  829. X     p1    - lista
  830. X     tulos - lista
  831. X4 pdrop
  832. X  Funktio: pdrop (p1)
  833. X
  834. X  Laskee parametrin p1 arvon.
  835. X
  836. X  Pudottaa (toiminnan laukaisseen) pelaajalta  maahan  p1:n  il-
  837. X  moittamat esineet.
  838. X
  839. X  Palauttaa arvonaan lista esineist`228, jotka todella saatiin  pu-
  840. X  dotettua.
  841. X
  842. X  Vaatimukset:
  843. X     - koodi pit`228`228 olla privileged-moodissa
  844. X
  845. X  Virhetilanteet:
  846. X     - koodi ei ole privileged moodissa
  847. X       > Ei toimintaa. Funktio ei laske parametrin p1 arvoa
  848. X         - tulos: Tyhj`228 merkkijono/lista
  849. X
  850. X  Tulkinta:
  851. X     p1    - lista
  852. X     tulos - lista
  853. X
  854. X  Huomautus:`032
  855. X       Ilmoittaa (toiminnan laukaisseelle) pelaajalle ja muille`032
  856. X       pelaajille, jos esineen  pudottaminen  aiheutti  esineen`032
  857. X       riisumisen (vertaa: wear ja  wield komennot.)
  858. X4 pduplicate
  859. X  Funktio: pduplicate (p1)
  860. X
  861. X  Laskee parametrin p1 arvon.
  862. X
  863. X  Tekee niist`228 esineist`228, jotka on mainittu listassa p1 pelaajan `032
  864. X  mukaan uuden kappaleen. Esineill`228 ja koodilla pit`228`228 olla sama`032
  865. X  omistaja tai monsterilla pit`228`228 olla object -privilegio.`032
  866. X
  867. X  Palauttaa listan niist`228 esineist`228, jotka todella sai tehty`228.
  868. X
  869. X  Vaatimukset:
  870. X`009- koodi pit`228`228 olla privileged -moodissa.
  871. X
  872. X  Virhetilanteet:
  873. X`009- Koodi ei ole privileged tilassa
  874. X`009  > Ei toimintaa. Funktio ei laske parametrin p1 arvoa,
  875. X            tulos: Tyhj`228 merkkijono
  876. X        - Esineell`228 ei ole sama omistaja kuin koodilla ja koodi`032
  877. X          ei ohjaa monsteria
  878. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 pelaa-
  879. X            jan mukaan.
  880. X        - Esineell`228 ei ole sama omistaja kuin koodilla ja mons-
  881. X          terilla ei ole object -privilegiota.
  882. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 pelaa-
  883. X            jan mukaan.
  884. X        - Esine ei mahdu mukaan
  885. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 pelaajan
  886. X`009    mukaan.
  887. X
  888. X  Tulkinta:
  889. X     p1    - lista
  890. X     tulos - lista
  891. X4 destroy
  892. X  Funktio: destroy (p1)
  893. X
  894. X  Laskee parametrin p1 arvon.
  895. X
  896. X  Tuhoaa monsterilta ne esineet jotka on mainittu listassa p1.`032
  897. X  Esineill`228 ja monsterilla pit`228`228 olla sama omistaja tai monste-
  898. X  rilla pit`228`228 olla object -privilegio.
  899. X
  900. X  Palauttaa listan niist`228 esineist`228, jotka todella sai tuhottua.
  901. X
  902. X  Virhetilanteet:
  903. X`009- Koodi ei ohjaa monsteria
  904. X`009  > Ei toimintaa: tulos: Tyhj`228 merkkijono
  905. X        - Esineell`228 ei ole sama omistaja kuin monsterilla ja`032
  906. X          monsterilla ei ole object -privilegiota
  907. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 esine`032
  908. X            tuhoudu.
  909. X
  910. X  Tulkinta:
  911. X     p1    - lista
  912. X     tulos - lista
  913. X4 pdestroy
  914. X  Funktio: pdestroy (p1)
  915. X
  916. X  Laskee parametrin p1 arvon.
  917. X
  918. X  Tuhoaa pelaajalta ne esineet jotka on mainittu listassa p1.`032
  919. X  Esineill`228 ja monsterilla pit`228`228 olla sama omistaja tai monste-
  920. X  rilla pit`228`228 olla object -privilegio.
  921. X
  922. X  Palauttaa listan niist`228 esineist`228, jotka todella sai tuhottua.
  923. X
  924. X  Vaatimukset:
  925. X`009- koodi pit`228`228 olla privileged -moodissa.
  926. X
  927. X  Virhetilanteet:
  928. X`009- Koodi ei ole privileged tilassa
  929. X`009  > Ei toimintaa. Funktio ei laske parametrin p1 arvoa,
  930. X            tulos: Tyhj`228 merkkijono
  931. X        - Esineell`228 ei ole sama omistaja kuin koodilla ja koodi
  932. X          ei ohjaa monsteria
  933. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 esine`032
  934. X            tuhoudu.
  935. X        - Esineell`228 ei ole sama omistaja kuin koodilla ja mons-
  936. X          terilla ei ole object -privilegiota.
  937. X`009  > Esinett`228 ei tule palautettavaan listaan eik`228 esine`032
  938. X            tuhoudu.
  939. X
  940. X  Tulkinta:
  941. X     p1    - lista
  942. X     tulos - lista
  943. X4 or
  944. X  Funktio: or (p1,p2,p3)
  945. X
  946. X  Laskee parametrien p1, p2 ja p3 arvon.
  947. X
  948. X  Palauttaa listan, jossa on ne alkiot, jotka ovat p1:ss`228,`032
  949. X  p2:ssa tai p3:ssa. Jokainen alkio esiintyy tuloksessa`032
  950. X  vain kerran.
  951. X
  952. X  Virhetilanteet:
  953. X   - Tuloksena syntyv`228 lista on pitempi kuin 1000 merkki`228
  954. X     > Tulos: lista, jossa on vain niin monta alkiota, ett`228 ne`032
  955. X       mahtuvat 1000 merkkiin.
  956. X
  957. X  Tulkinta:
  958. X     p1    - lista
  959. X     p2    - lista
  960. X     p3    - lista
  961. X `255    tulos - lista
  962. X4 string_head
  963. X  Funktio: string head (p1)
  964. X
  965. X  Laskee parametrin p1 arvon.
  966. X
  967. X  Palauttaa merkkijonosta p1 ensimm`228isen sanan (merkkijonon ekaan `032
  968. X  v`228lily`246ntiin saakka).
  969. X
  970. X  Virhetilanteet:
  971. X`009- p1 on tyhj`228 merkkijono
  972. X`009  > Tulos: Tyhj`228 merkkijono
  973. X
  974. X  Tulkinta:
  975. X     p1    - merkkijono
  976. X     tulos - merkkijono
  977. X4 string_tail
  978. X  Funktio: string tail (p1)
  979. X
  980. X  Laskee parametrin p1 arvon.
  981. X
  982. X  Palauttaa merkkijonon p1 ensimm`228ist`228 sanaa lukuunottamatta`032
  983. X  (merkkijonon ekasta v`228lily`228nnist`228 alkaen).
  984. X
  985. X  Virhetilanteet:
  986. X`009- p1 on tyhj`228 merkkijono
  987. X`009  > Tulos: Tyhj`228 merkkijono
  988. X`009- p1:ss`228 vain yksi sana
  989. X`009  > Tulos: Tyhj`228 merkkijono
  990. X
  991. X  Tulkinta:
  992. X     p1    - merkkijono
  993. X     tulos - merkkijono
  994. X4 tail
  995. X  Funktio: tail (p1)
  996. X
  997. X  Laskee parametrin p1 arvon.
  998. X
  999. X  Palauttaa listan p1 ensimm`228ist`228 alkiota lukuunottamatta.
  1000. X
  1001. X  Virhetilanteet:
  1002. X`009- p1 on tyhj`228 lista
  1003. X`009  > Tulos: Tyhj`228 lista/merkkijono
  1004. X`009- p1:ss`228 vain yksi alkio
  1005. X`009  > Tulos: Tyhj`228 lista/merkkijono
  1006. X
  1007. X  Tulkinta:
  1008. X     p1    - lista
  1009. X     tulos - lista
  1010. X4 head
  1011. X  Funktio: head (p1)
  1012. X
  1013. X  Laskee parametrin p1 arvon.
  1014. X
  1015. X  Palauttaa listan p1 ensimm`228isen alkion.
  1016. X
  1017. X  Virhetilanteet:
  1018. X`009- p1 on tyhj`228 lista
  1019. X`009  > Tulos: Tyhj`228 merkkijono
  1020. X
  1021. X  Tulkinta:
  1022. X     p1    - lista
  1023. X     tulos - alkio
  1024. X4 lookup_room
  1025. X  Funktio: lookup room (p1)
  1026. X
  1027. X  Laskee parametrin p1 arvon.
  1028. X
  1029. X  T`228ydent`228`228 listan p1 alkiot huoneiden nimiksi. Jos jonkin alki-
  1030. X  on t`228ydennys ei onnistu, kyseinen alkio j`228`228 pois tuloslistasta.
  1031. X
  1032. X  Tulkinta:
  1033. X     p1    - lista
  1034. X     tulos - lista
  1035. X4 lookup_player
  1036. X  Funktio: lookup player (p1)
  1037. X
  1038. X  Laskee parametrin p1 arvon.
  1039. X
  1040. X  T`228ydent`228`228 listan p1 alkiot pelaajien ja monsterien nimiksi.`032
  1041. X  Jos jonkin alkion t`228ydennys ei onnistu, kyseinen alkio  j`228`228`032
  1042. X  pois tuloslistasta.
  1043. X
  1044. X  Tulkinta:
  1045. X     p1    - lista
  1046. X     tulos - lista
  1047. X4 lookup_object
  1048. X  Funktio: lookup object (p1)
  1049. X
  1050. X  Laskee parametrin p1 arvon.
  1051. X
  1052. X  T`228ydent`228`228 listan p1 alkiot esineiden nimiksi. Jos jonkin alki-
  1053. X  on t`228ydennys ei onnistu, kyseinen alkio j`228`228 pois tuloslistasta.
  1054. X
  1055. X  Tulkinta:
  1056. X     p1    - lista
  1057. X     tulos - lista
  1058. X4 parse_player
  1059. X  Funktio: parse player (p1)
  1060. X
  1061. X  Laskee parametrin p1 arvon.
  1062. X
  1063. X  Funktio tarjoaa samanlaisen parametrin tulkintapalvelun kuin`032
  1064. X  on k`228yt`246ss`228 monsterin komennoissa, joissa voi k`228ytt`228`228 jo
  1065. Vkeri-
  1066. X  merkki`228.
  1067. X
  1068. X  Palauttaa parametria p1 vastaavan pelaaja ja monster -listan.`032
  1069. X
  1070. X  Virhetilanteet:
  1071. X    - p1 on tyhj`228 merkkijono
  1072. X      > Tulos: Tyhj`228 merkkijono
  1073. X    - parametrin tulkinnassa tapahtuu virhe
  1074. X      > Tulos: Tyhj`228 merkkijono
  1075. X
  1076. X  Tulkinta:
  1077. X      p1    - merkkijono
  1078. X      tulos - lista
  1079. X4 parse_object
  1080. X  Funktio: parse object (p1)
  1081. X
  1082. X  Laskee parametrin p1 arvon.
  1083. X
  1084. X  Funktio  tarjoaa samanlaisen parametrin tulkintapalvelun kuin`032
  1085. X  on k`228yt`246ss`228 monsterin komennoissa, joissa voi k`228ytt`228`228 jo
  1086. Vkeri-
  1087. X  merkki`228.
  1088. X
  1089. X  Palauttaa parametria p1 vastaavan esinelistan.`032
  1090. X
  1091. X  Virhetilanteet:
  1092. X    - p1 on tyhj`228 merkkijono
  1093. X      > Tulos: Tyhj`228 merkkijono
  1094. X    - parametrin tulkinnassa tapahtuu virhe
  1095. X      > Tulos: Tyhj`228 merkkijono
  1096. X
  1097. X  Tulkinta:
  1098. X      p1    - merkkijono
  1099. X      tulos - lista
  1100. X4 parse_room
  1101. X  Funktio: parse room (p1)
  1102. X
  1103. X  Laskee parametrin p1 arvon.
  1104. X
  1105. X  Funktio tarjoaa samanlaisen parametrin tulkintapalvelun kuin`032
  1106. X  on k`228yt`246ss`228 monsterin komennoissa, joissa voi k`123ytt`228`228 jo
  1107. Vkeri-
  1108. X  merkki`228.
  1109. X
  1110. X  Palauttaa parametria p1 vastaavan huonelistan.`032
  1111. X
  1112. X  Virhetilanteet:
  1113. X    - p1 on tyhj`228 merkkijono
  1114. X      > Tulos: Tyhj`228 merkkijono
  1115. X    - parametrin tulkinnassa tapahtuu virhe
  1116. X      > Tulos: Tyhj`228 merkkijono
  1117. X
  1118. X  Tulkinta:
  1119. X      p1    - merkkijono
  1120. X      tulos - lista
  1121. X4 privilege
  1122. X  Funktio: privilege (p1,p2)
  1123. X
  1124. X  Laskee parametrien p1 ja p2 arvon.
  1125. X
  1126. X  Palauttaa  listan  niist`228 pelaajan (taikka monsterin) p1 pri-
  1127. X  vilegeista, jotka ovat mainittu listassa p2. Mahdolliset pri-
  1128. X  vileget: wizard, manager, experience, quota, object, poof,`032
  1129. X  special ja monster. wizard -privilege tarkoittaa, ett`123 pelaaja`032
  1130. X  on Monster Manager.
  1131. X
  1132. X  Virhetilanteet:
  1133. X`009- p1 ei ole pelaajan tai monsterin nimi
  1134. X`009  > Tulos: Tyhj`228 merkkijono/lista
  1135. X`009- p2:ssa on mainittu privilege, jota ei ole olemassa
  1136. X`009  > Tulos: Kyseinen privilege ei tule tulokseen mukaan
  1137. X
  1138. X  Tulkinta:
  1139. X     p1    - nimi
  1140. X     p2    - lista
  1141. X     tulos - lista
  1142. X
  1143. X4 userid
  1144. X  Funktio: userid (p1)
  1145. X
  1146. X  Funktio laskee parametrin p1 arvon.
  1147. X
  1148. X  Funktio vaatii toimiakseen, ett`228 ohjattavalla monsterilla on`032
  1149. X  experience  -privilegio.
  1150. X
  1151. X  Palauttaa listan, jossa p1:n pelaajien nimet on vaihdettu vas-
  1152. X  taaviksi k`228ytt`228j`228tunnuksiksi.
  1153. X
  1154. X  Virhetilanteet:
  1155. X`009- koodi ei ohjaa monsteri taikka ohjattavalla monsteril-
  1156. X          la ei ole experience -privilegiota
  1157. X`009  > Funktio ei laske parametrin p1 arvoa, Tulos: Tyhj`228`032
  1158. X            merkkijono
  1159. X`009- Listassa p1 on nimi, joka ei ole pelaajan taikka mons-
  1160. X          terin nimi
  1161. X`009  > Ei tule mukaan tulokseen
  1162. X`009- listssa on nimi, joka on monsterin nimi
  1163. X`009  > Tulle mukaan tulokseen, userid -k`228ytt`228`228 monsterien
  1164. X`009    k`228ytt`228j`228tunnuksina ohjelman sis`228ist`228 esitysmuotoa`032
  1165. X            (monster id), joka on yksik`123sitteinen
  1166. X
  1167. X  Tulkinta:
  1168. X      p1    - lista
  1169. X      tulos - lista
  1170. X4 attack
  1171. X  Funktio: attack (p1)
  1172. X
  1173. X  Laskee parametrin p1 arvon.
  1174. X
  1175. X  V`228hent`228`228 (toiminnan laukaisseen) pelaajan voimina p1:n ilmoit-
  1176. X  taman m`228`228r`228n, kuitenkaan ei enemm`123n kuin monsterin kokemus an-
  1177. X  taa my`246t`228. Per`228kk`228isten hy`246kk`228ysten summa ei saa ylitt`2
  1178. V28`228 mons-
  1179. X  terin kokemuksen m`228`228r`228`228m`123`123 rajaa.
  1180. X
  1181. X  Palauttaa mill`228 voimalla hy`246k`228ttiin.
  1182. X
  1183. X  Vaatimukset:
  1184. X     - Monsteri ei saa olla hy`246k`228nnyt jo kokemuksen m`123`123r`123`123
  1185. Vn rajan`032
  1186. X       verran
  1187. X     - Pelaaja ei saa olla suojattu.
  1188. X     - Hookeilla vaatii privileged -moodin
  1189. X
  1190. X  Virhetilanteet:
  1191. X     - Monsteri on hy`246k`228nnyt jo kokemuksen m`228`228r`228`228m`228n ra
  1192. Vjan verran
  1193. X       > Ei toimintaa - Tulos: tyhj`228 merkkijono
  1194. X     - pelaaja on suojattu
  1195. X       > Ei toimintaa - Tulos: tyhj`228 merkkijono
  1196. X     - p1 ei ole luku
  1197. X       > Ei toimintaa - Tulos: tyhj`228 merkkijono
  1198. X     - p1 on suurempi kuin kokemus antaa my`124t`123
  1199. X       > Hy`246k`228t`228`228n voimalla jonka kokemus antaa my`124ten, Tulos
  1200. V:`032
  1201. X         voima jolla hy`246k`228ttiin
  1202. X     - koodi ei ohjaa monsteria ja privileged -moodi p`228`228ll`228
  1203. X       > ei rajaa hy`246kk`228yksen voimakkuudella
  1204. X     - koodi ei ohjaa monsteria ja ei privileged -moodia
  1205. X       > Ei toimintaa - Tulos: tyhj`228 merkkijono
  1206. X`032
  1207. X  Tulkinta:
  1208. X     p1    - luku
  1209. X     tulos - luku
  1210. X
  1211. X  Huomautus:
  1212. X     - Funktio ei kerro, kuinka hyvin hy`246kk`228ys todelisuudessa`032
  1213. X       onnistui. (On mahdollista saada selville funktion health`032
  1214. X       avulla.)
  1215. X     - Funktio ei vaadi en`123`123n privileged moodia monsterilta
  1216. X4 spell_level
  1217. X  Funktio: spell level()
  1218. X
  1219. X  Palauttaa taian k`228ytt`228j`228n kyseisen tain taitotason. Toimii vain`0
  1220. V32
  1221. X  suoritettaessa tain koodissa (labelit summon ja learn).`032
  1222. X
  1223. X  Virhetilanteet:
  1224. X         - K`228ytet`228`228n muualla kuin taissa
  1225. X           > Tulos: Tyhj`228 (merkkijono)
  1226. X
  1227. X  Tulkinta:
  1228. X     tulos - luku
  1229. X
  1230. X  Huomaa:
  1231. X         - Taian k`228ytt`228j`228 (muutujassa summoner name) on eri kuin
  1232. X           koodin suorittaja (poikkeus: learn -label)
  1233. X4 set_spell_level
  1234. X  Funktio: set spell level(p1)
  1235. X
  1236. X  Laskee parametrin p1 arvon.
  1237. X
  1238. X  Asettaa taian k`228ytt`228j`228n kyseisen tain taitotason. Toimii vain`032
  1239. X  suoritettaessa tain koodissa (labelit summon ja learn). Taso 0`032
  1240. X  merkitsee, ett`123 pelaaja ei osa taikaa, positiivinen luku merkit-
  1241. X  see, ett`123 pelaaja osaa taian.`032
  1242. X
  1243. X  Palautaa asetetun taian tason.
  1244. X
  1245. X  Virhetilanteet:
  1246. X         - K`228ytet`228`228n muualla kuin taissa
  1247. X           > Tulos: Tyhj`228 (merkkijono)
  1248. X         - p1 ei luku
  1249. X           > Tulos: Tyhj`228 (merkkijono)
  1250. X         - p1 < 0
  1251. X           > Tulos: Tyhj`228 (merkkijono)
  1252. X
  1253. X  Tulkinta:
  1254. X     p1    - luku
  1255. X     tulos - luku
  1256. X
  1257. X  Huomaa:
  1258. X         - Taian k`228ytt`228j`228 (muuttujassa summoner name) on eri kuin
  1259. X           koodin suorittaja (poikkeus: learn -label)
  1260. X
  1261. X         - T`228m`228 funktio on tarkoitettu taian opettamiseen pelajalle
  1262. X           (learn -labelissa)
  1263. X
  1264. X         - Muuttujasta book name voi tarkistaa mik`228 kirja (magic book) `0
  1265. V32
  1266. X           on  k`228ynist`228nyt taian  learn  -labelin. `032
  1267. X2 Fixing_Database `032
  1268. X  Start  monster  with MONSTER/FIX -command.
  1269. X
  1270. X  Fix-subsystem uses file level locks to prevent  other  players  to`032
  1271. X  playing monster, when you fixing database.
  1272. X
  1273. X  If someone is playing, when you want fix-database, it's better run
  1274. X  monster down with D -commands in subsystem -menu (in system-menu).
  1275. X `032
  1276. X3 Menu
  1277. X  Follow menu you get with ? -command in /FIX -system:
  1278. X
  1279. X  A        Clear/create privileges database.
  1280. X  B        Clear/create health database.
  1281. X  C        Create event file.
  1282. X  D        Reallocate describtins
  1283. X  E        (Exit subsystem) Start monster playing.
  1284. X  F        Clear/create experience database.
  1285. X  G        Calculate objects' number in existence.
  1286. X  GL       Clear/create global database.
  1287. X  GS       Mark moster shutdown to global database.
  1288. X  GU       Mark monster active to global database.
  1289. X  GV       Show global database.
  1290. X  G-       Mark monster database as invalid.
  1291. X  G+       Mark monster database as valid.
  1292. X  H        This list
  1293. X  I        Repair index file.
  1294. X  J        Repair paths.
  1295. X  K        Reallocate MDL codes.
  1296. X  L        Repair monsters' location.
  1297. X  M        Clear/create MDL database.
  1298. X  N        Clear/create and recount quota database.
  1299. X  O        Clear/create object database.
  1300. X  OW       Check owners of objects, rooms and monsters.
  1301. X  P        Clear/create player database.
  1302. X  Q        (Quit) Leave monster.
  1303. X  R        Clear/create room database.
  1304. X  S        Clear/create password database.
  1305. X  SP       Clear/create spell database.
  1306. X  V        View database capacity.
  1307. X  ?        This list
  1308. X
  1309. X3 Partial_rebuild
  1310. X  Follow commands make  partial rebuild  of Monster database.  After`032
  1311. X  these command use fix -commands to fix pointers in database.
  1312. X
  1313. X  A        Clear/create privileges database.
  1314. X  B        Clear/create health database.
  1315. X  C        Create event file.
  1316. X  F        Clear/create experience database.
  1317. X  M        Clear/create MDL database.
  1318. X  N        Clear/create and recount quota database.
  1319. X  O        Clear/create object database.
  1320. X  P        Clear/create player database.
  1321. X  GL       Clear/create global database.
  1322. X  R        Clear/create room database.
  1323. X  S        Clear/create password database.
  1324. X  SP       Clear/create spell database.
  1325. X
  1326. X  Recommented order: GL R O P M C F N S SP
  1327. X
  1328. X  You can do only one of R, O and P.  Use /REBUILD  istead,  if  you`032
  1329. X  need more.
  1330. X
  1331. X3 Fix_commands
  1332. X  Follow commands can fix small errors in database without disaster:
  1333. X
  1334. X  C        Create event file.
  1335. X  D        Reallocate descriptions
  1336. X  G        Calculate objects' number in existence.
  1337. X  I        Repair index file.
  1338. X  J        Repair paths.
  1339. X  K        Reallocate MDL codes.
  1340. X  L        Repair monsters' location.
  1341. X  N        Clear/create and recount quota database.
  1342. X  OW       Check owners of objects, rooms and monsters.
  1343. X
  1344. X  Recommented order: C I N G J K L D OW
  1345. $ CALL UNPACK MONSTER_E.HLP;31 2091529618
  1346. $ create/nolog 'f'
  1347. X$! Install Monster`032
  1348. X$ SET NOON
  1349. X$ SET ON
  1350. X$ ON WARNING THEN $ STOP
  1351. X$
  1352. X$! Questions
  1353. X$ CALL PATHNAME bn 'F$ENVIRONMENT("PROCEDURE")
  1354. X$ source_directory == ""
  1355. X$ CALL QUERY_DIR source_directory "Give source (distribution) directory" 'bn
  1356. X$ df = F$ENVIRONMENT("DEFAULT")
  1357. X$ work_directory == ""
  1358. X$ CALL ASK_DIR work_directory "Give work directory for compilation" 'df
  1359. X$ image_directory == ""
  1360. X$ CALL ASK_DIR image_directory "Give directory for installed MON.EXE"
  1361. X$ database_directory == ""
  1362. X$ CALL ASK_DIR database_directory "Give directory for Monster database"
  1363. X$ option == ""
  1364. X$ CALL ASK_OPTION
  1365. X$ old_database == ""
  1366. X$ IF option .eq. 2`032
  1367. X$    THEN
  1368. X$    CALL QUERY_DIR old_database "Give old monster database" 'database_direc
  1369. Vtory
  1370. X$    CALL CHECK_FILE 'old_database'DESC.MON
  1371. X$    CALL CHECK_FILE 'old_database'EVENTS.MON
  1372. X$    CALL CHECK_FILE 'old_database'INDEX.MON
  1373. X$    CALL CHECK_FILE 'old_database'INTFILE.MON
  1374. X$    CALL CHECK_FILE 'old_database'LINE.MON
  1375. X$    CALL CHECK_FILE 'old_database'NAMS.MON
  1376. X$    CALL CHECK_FILE 'old_database'OBJECTS.MON
  1377. X$    CALL CHECK_FILE 'old_database'ROOMS.MON
  1378. X$ ENDIF
  1379. X$ IF option .eq. 3 THEN CHECK_FILE 'source_directory'CASTLE.DMP
  1380. X$
  1381. X$
  1382. X$! Actions
  1383. X$ SET DEFAULT 'work_directory'
  1384. X$ CALL CHECK_FILE 'source_directory'MONSTER.HELP
  1385. X$ CALL CHECK_FILE 'source_directory'COMMANDS.PAPER
  1386. X$ CALL CHECK_FILE 'source_directory'ILMOITUS.TXT
  1387. X$ CALL CHECK_FILE 'source_directory'CLD.PROTO
  1388. X$ CALL CHECK_FILE 'source_directory'INIT.PROTO
  1389. X$ CALL CHECK_FILE 'source_directory'CONVERT.BATCH
  1390. X$ CALL CHECK_FILE 'source_directory'FIX.BATCH
  1391. X$
  1392. X$ CALL MAKE_HELP `124 Produce MONSTER_E.HLB
  1393. X$ CALL MAKE_DUMP ! Produce MONSTER_DUMP.EXE
  1394. X$ CALL MAKE_WHO  ! Produce MONSTER_WHO.EXE
  1395. X$ CALL MAKE_MON  ! Produce MON.EXE
  1396. X$
  1397. X$ CALL CHECK_FILE MON.EXE
  1398. X$ CALL CHECK_FILE MONSTER_DUMP.EXE
  1399. X$ CALL CHECK_FILE MONSTER_WHO.EXE
  1400. X$
  1401. X$ CALL CREATE_SUBDIR 'database_directory' DB DBDIR
  1402. X$ CALL CREATE_SUBDIR 'database_directory' C  CODEDIR
  1403. X$ COPY/LOG MON.EXE,MONSTER_DUMP.EXE,MONSTER_WHO.EXE,MONSTER_E.HLB 'image_dir
  1404. Vectory
  1405. X$ IF .not. $SEVERITY THEN CALL FATAL "Copy failed"
  1406. X$ COPY/LOG 'source_directory'CONVERT.BATCH,FIX.BATCH 'image_directory
  1407. X$ IF .not. $SEVERITY THEN CALL FATAL "Copy failed"
  1408. X$ SET FILE/PROTECTION=(W:E)/LOG 'image_directory'MON.EXE,MONSTER_DUMP.EXE,MO
  1409. VNSTER_WHO.EXE
  1410. X$ IF .not. $SEVERITY THEN CALL FATAL "Set file/protection failed"
  1411. X$ COPY/LOG 'source_directory'CONVERT.BATCH,FIX.BATCH 'image_directory
  1412. X$ IF .not. $SEVERITY THEN CALL FATAL "Copy failed"
  1413. X$ COPY/LOG 'source_directory'ILMOITUS.TXT,MONSTER.HELP 'DBDIR'
  1414. X$ IF .not. $SEVERITY THEN CALL FATAL "Copy failed"
  1415. X$ SET FILE/PROTECTION=(W:R)/LOG 'DBDIR'MONSTER.HELP
  1416. X$ IF .not. $SEVERITY THEN CALL FATAL "Set file/protection failed"
  1417. X$ COPY/LOG 'source_directory'COMMANDS.PAPER 'DBDIR'
  1418. X$ IF .not. $SEVERITY THEN CALL FATAL "Copy failed"
  1419. X$ SET FILE/PROTECTION=(W:R)/LOG 'DBDIR'COMMANDS.PAPER
  1420. X$ IF .not. $SEVERITY THEN CALL FATAL "Set file/protection failed"
  1421. X$ SB_IMAGE_DIR = image_directory
  1422. X$ CALL MAKE_FILE 'source_directory'CLD.PROTO 'image_directory'MONSTER.CLD
  1423. X$ SB_MANAGER = F$EDIT(F$GETJPI("","USERNAME"),"LOWERCASE")
  1424. X$ SB_DB1 = DBDIR
  1425. X$ SB_DB2 = CODEDIR
  1426. X$ CALL MAKE_FILE 'source_directory'INIT.PROTO 'image_directory'MONSTER.INIT
  1427. X$
  1428. X$ CALL DEFINE_MONSTER
  1429. X$
  1430. X$ IF option .eq. 1 THEN CALL BUILD_DATABASE
  1431. X$ IF option .eq. 2 THEN CALL CONVERT_DATABASE
  1432. X$ IF option .eq. 3 THEN CALL BUILD_CASTLE
  1433. X$
  1434. X$ WRITE SYS$OUTPUT ""
  1435. X$ WRITE SYS$OUTPUT "Add to your LOGIN.COM command:"
  1436. X$ WRITE SYS$OUTPUT "$ SET COMMAND ''image_directory'MONSTER.CLD"
  1437. X$ WRITE SYS$OUTPUT ""
  1438. X$ SET DEFAULT 'df'
  1439. X$ EXIT
  1440. X$!
  1441. X$ CHECK_FILE: SUBROUTINE
  1442. X$ file = F$PARSE(P1)
  1443. X$ IF file .eqs. "" THEN CALL FATAL "File ''P1' not found - bad path?"
  1444. X$ if F$SEARCH(file) .eqs. "" THEN CALL FATAL "File ''file' not found."
  1445. X$ EXIT
  1446. X$ ENDSUBROUTINE`032
  1447. X$!
  1448. X$ FATAL: SUBROUTINE
  1449. X$ WRITE SYS$ERROR "Install failed: ", p1
  1450. X$ SET DEFAULT 'df'
  1451. X$ STOP
  1452. X$ ENDSUBROUTINE
  1453. X$!
  1454. X$ ASK_DIR: SUBROUTINE
  1455. X$again1:
  1456. X$ write SYS$OUTPUT P2
  1457. X$ IF P3 .nes. "" THEN WRITE SYS$OUTPUT "Default: ",P3
  1458. X$ INQUIRE dir "Directory"
  1459. X$ IF dir .eqs. "" .and. P3 .nes. "" THEN dir = P3
  1460. X$ full = F$PARSE(dir,,,,"SYNTAX_ONLY") - ".;"
  1461. X$ IF full .eqs. ""`032
  1462. X$   THEN
  1463. X$   WRITE SYS$ERROR "Bad directory specification: ''dir'"
  1464. X$   GOTO again1
  1465. X$ ENDIF
  1466. X$ WRITE SYS$OUTPUT "''full' - OK?"
  1467. X$ INQUIRE OK "Ok (Y/N)"
  1468. X$ IF OK .nes. "Y" THEN GOTO again1
  1469. X$ IF F$PARSE(full) .eqs. ""
  1470. X$   THEN
  1471. X$   WRITE SYS$ERROR "Directory ''full' not exist - create it?"
  1472. X$   INQUIRE OK "Create (Y/N)"
  1473. X$   IF OK .nes. "Y" THEN GOTO again1
  1474. X$   CREATE/DIRECTORY/LOG 'full
  1475. +-+-+-+-+-+-+-+-  END  OF PART 30 +-+-+-+-+-+-+-+-
  1476.