|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 5022 (0x139e) Types: TextFile Names: »magic.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Abermud/magic.c«
#include "kernel.h" #ifdef RCSID static char RCS[] = "$Header: magic.c,v 1.1 89/03/13 09:36:47 rsalz Exp $"; #endif /* RCSID */ randperc() { return (rand() >> 3) % 100; } sumcom() { sumb(1); } transcom() { if (plev(mynum) < 11) bprintf("You practise your transcendental meditation\n"); else sumb(0); } sumb(n) int n; { int a; char seg[128]; char ms[128]; int c, d, x; if (EMPTY(item1)) { bprintf("Summon who ?\n"); return; } if ((a = fobn(item1)) != -1) { if (plev(mynum) < 10) { bprintf("You can only summon people\n"); return; } x = oloc(a); if (ocarrf(a) > 0) x = ploc(x); sprintf(ms, "\001p%s\001 has summoned the %s\n", pname(mynum), oname(a)); sendsys(pname(mynum), pname(mynum), -10000, x, ms); bprintf("The %s flies into your hand\nIt was :", oname(a)); desrm(oloc(a), ocarrf(a)); setoloc(a, mynum, 1); return; } if ((a = pl1) == -1) { bprintf("I dont know who that is\n"); return; } if (plev(mynum) <= 9) { if (pstr(mynum) < 10) { bprintf("You are too weak\n"); return; } if (plev(mynum) < 10) setpstr(mynum, pstr(mynum) - 2); c = plev(mynum) * 2; if (plev(mynum) > 9) c = 101; if (iscarrby(111, mynum)) c += plev(mynum); if (iscarrby(121, mynum)) c += plev(mynum); if (iscarrby(163, mynum)) c += plev(mynum); d = randperc(); if (ploc(mynum) == -1067) { bprintf("It is too small in here!\n"); return; } if (ploc(mynum) >= -999 && ploc(mynum) <= -900) { bprintf("The boat is rolling too much.\n"); return; } if (iswornby(90, a) || c < d) { bprintf("The spell fails....\n"); return; } if ((a == fpbns("hermit")) == -1 || (a == fpbns("wraith")) == -1 || (iscarrby(32,a) || iscarrby(159,a) || iscarrby(174,a) || ploc(a) == -8)) { bprintf("Something stops your summoning from succeeding\n"); return; } if (a == mynum) { bprintf("Seems a waste of effort to me....\n"); return; } if (ploc(mynum) >= -1082 && ploc(mynum) <= -1076) { bprintf("Something about this place makes you fumble the magic\n"); return; } } bprintf("You cast the summoning......\n"); if (a < 16) { sendsys(pname(a), pname(mynum), -10020, ploc(mynum), n ? "1" : "0"); return; } if (n) on_flee_mob(a); sprintf(seg, "\001s%s\001%s has arrived\n\001", pname(a), pname(a)); sendsys("", "", -10000, ploc(mynum), seg); setploc(a, ploc(mynum)); if (plev(mynum) < 10) /* Monster regards summoning as a hostile action */ woundmn(a, 0); return; } goloccom() { char n1[128]; char bf[128]; int a; if (plev(mynum) < 10) { bprintf("huh ?\n"); return; } if (brkword() == -1) { bprintf("Go where ?\n"); return; } strcpy(n1, wordbuf); if (brkword() == -1) strcpy(wordbuf, ""); if ((a = roomnum(n1, wordbuf)) >= 0 || !exists(a)) { bprintf("Unknown Room\n"); return; } sendsys(pname(mynum), pname(mynum), -10114, ploc(mynum), mout_ms); setploc(mynum, a); trapch(a); sendsys(pname(mynum), pname(mynum), -10114, ploc(mynum), min_ms); } wizcom() { char bf[128]; if (plev(mynum) < 10) { bprintf("Such advanced conversation is beyond you\n"); return; } getreinput(wordbuf); sprintf(bf, "\001p%s\001 : %s\n", pname(mynum), wordbuf); sendsys(pname(mynum), pname(mynum), -10113, ploc(mynum), bf); rd_qd = 1; } viscom() { int ar[4]; if (plev(mynum) < 10) { bprintf("You can't just do that sort of thing at will you know.\n"); return; } if (!pvis(mynum)) { bprintf("You already are visible\n"); return; } setpvis(mynum, 0); ar[0] = mynum; ar[1] = pvis(mynum); sendsys("", "", -9900, 0, (char *)ar); bprintf("Ok\n"); pclrflg(mynum, 9); sillycom("\001s%s\001%s suddenly appears in a puff of smoke\n\001"); } inviscom() { int x; int ar[4]; if (plev(mynum) < 10) { bprintf("You can't just turn invisible like that!\n"); return; } x = plev(mynum) > 9999 ? 10000 : 10; x = 10000; if (op(pname(mynum)) && brkword() != -1) x = atoi(wordbuf); if (EQ(pname(mynum), "Wraistlyn") && brkword() != -1) x = atoi(wordbuf); if (pvis(mynum) == x) { bprintf("You are already invisible\n"); return; } setpvis(mynum, x); ar[0] = mynum; ar[1] = pvis(mynum); sendsys("", "", -9900, 0, (char *)ar); bprintf("Ok\n"); psetflg(mynum, 9); sillycom("\001c%s vanishes!\n\001"); } ressurcom() { char bf[80]; int a; if (plev(mynum) < 10) { bprintf("Huh ?\n"); return; } if (EMPTY(item1)) { bprintf("Yes but what ?\n"); return; } if ((a = fobn(item1)) == -1) { bprintf("You can only ressurect objects\n"); return; } if (ospare(a) != -1) { bprintf("That already exists\n"); return; } oclrbit(a, 0); setoloc(a, ploc(mynum), 0); sprintf(bf, "The %s suddenly appears\n", oname(a)); sendsys("", "", -10000, ploc(mynum), bf); }