Nah, gamble.c on the circle ftp site has a slot machine, but here is the slot machine code stripped out. here is the spec_proc you need to put on any old item ... SPECIAL(gamble_slot_machine) { if (!CMD_IS("bet")) return(FALSE); play_slots(ch); return(TRUE); } and here is the void play_slots(struct char data *ch) ... (I use Georges buffer system, modify to suit) void play_slots(struct char_data *ch) { int num1, num2, num3, win = 0; char* buf; char *slot_msg[] = { "*YOU SHOULDN'T SEE THIS*", "a &Wmithril &nbar", /* 1 */ "a &WSilver &ndragon", "a Dwarven &nhammer", "a &Ygolden &nbell", "an &GElven bow&n", /* 5 */ "a &Rred &nbrick", "a pile of &Ygold&n", "a &gwaybread&n", "a Gnomish &npick", "a &Rruby &ncherry", /* 10 */ }; if (GET_GOLD(ch) < 1) { send_to_char("You need one gold coin to use this artifact!\r\n", ch); return; } else GET_GOLD(ch) -= 1; act("$n puts a gold coin into a slot upon the artifact ...", FALSE, ch, 0, 0, TO_ROOM); send_to_char("You put a gold coin into a slot upon the artifact ...\r\n", ch); act("$e pulls on the lever of the magical artifact.", FALSE, ch, 0, 0, TO_ROOM); send_to_char("You pull on the lever of the magical artifact.\r\n", ch); /* very simple roll 3 random numbers from 1 to 10 */ num1 = number(1, 10); num2 = number(1, 10); num3 = number(1, 10); if (num1 == num2 && num2 == num3) { /* all 3 are equal! Woohoo! */ if (num1 == 1) win += 200; else if (num1 == 2) win += 150; else if (num1 == 3) win += 100; else if (num1 == 4) win += 80; else if (num1 == 5) win += 60; else if (num1 == 6) win += 50; else if (num1 == 7) win += 40; else if (num1 == 8) win += 30; else if (num1 == 9) win += 20; else if (num1 == 10) win += 10; } else if (num1 == num2) { /* just the first two are the same! */ if (num1 == 1) win += 20; else if (num1 == 2) win += 15; else if (num1 == 3) win += 10; else if (num1 == 4) win += 8; else if (num1 == 5) win += 6; else if (num1 == 6) win += 5; else if (num1 == 7) win += 4; else if (num1 == 8) win += 3; else if (num1 == 9) win += 2; else if (num1 == 10) win += 1; } buf = get_buffer(MAX_STRING_LENGTH); sprintf(buf, "You got %s, %s, and %s, ", slot_msg[num1], slot_msg[num2], slot_msg[num3]); if (win > 1) sprintf(buf, "%syou win %d gold pieces!\r\n", buf, win); else if (win == 1) sprintf(buf, "%syou win 1 gold piece!\r\n", buf); else sprintf(buf, "%syou lose.\r\n", buf); send_to_char(buf, ch); GET_GOLD(ch) += win; release_buffer(buf); return; } in interpreter.c add do_bet as a do_not_here attach the spec to an item in spec_assign.c don't forget to declare void play_slots at the top of spec_procs.c and you should be gambling nicely. If any need the rest of the spec_procs for the rest of gamble.c I will post them. Andy ########## DreamScapes MUD (playtest) ########### Endure no Imitations for They Will Surely Become Your Nightmares telnet://dreamscapes.ml.org:4500 http://www.dreamscapesmud.com/ DreamScapes is proud to be hosted by Planet MUD http://www.planetmud.com/ -----Original Message----- From: Angus Mezick <amezick@EDGIL.COM> To: CIRCLE@post.queensu.ca <CIRCLE@post.queensu.ca> Date: 19 February 1999 14:23 Subject: Re: Slot machine >Nope, sound like a good beginners project. Steal the ATM spec_proc >code, change the commands to have something like "pull" and do some >random number stuff. each "pull" removes some cash or other such >thing from the char. >--Angus > > > > >Hi on alot of ROM muds i have played i have seen slot machines >where you can win training sessions and gold and all sorts of >stuff, i was wondering if there is one for Circle, thanks :) > > > +------------------------------------------------------------+ > | Ensure that you have read the CircleMUD Mailing List FAQ: | > | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | > +------------------------------------------------------------+ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST