]>
jfr.im git - irc/gameservirc.git/blob - gameserv/gameserv.cpp
9 #if defined(HAVE_CRYPT_H)
13 #elif defined(HAVE_UNISTD_H)
19 List
< aClient
> players
;
20 Monster
* monsters
[ LEVELS
][ MONSTERS
]; // Monsters per level. Total = MONSTERS * LEVELS
22 Monster
* masters
[ LEVELS
]; // A master for each level
30 char * strtok ( char * str
, const char * delim
);
33 int stricmp ( const char * s1
, const char * s2
);
34 int strnicmp ( const char * s1
, const char * s2
, size_t len
);
38 /********** Password functions **********/
40 bool passcmp ( char * encrypted
, char * plaintext
); // Compares an encrypted pass with a plain text one
42 bool check_password ( char * name
, char * plaintext
); // Finds a password for the given name, and checks it with passcmp against the plaintext password given.
44 /********** Password functions **********/
47 /********** GameServ Booleans **********/
49 bool is_playing ( char * u
); // True if the given nickname in the clients list is playing.
50 bool has_started ( char * u
); // True if the given nickname in the clients list has started playing.
51 bool is_fighting ( char * u
); // True if the given nick in the clients list is fighting anything.
52 bool isnt_fighting ( char * u
); // True if the given nick isn't fighting. Same as !is_fighting(u).
53 bool player_fight ( char * u
); // True if the player is fighting another player.
54 bool master_fight ( char * u
); // True if the player is fighting their master.
56 /********** GameServ Booleans **********/
59 void display_monster ( char * u
);
60 void display_players ( char * u
);
61 long int chartoint ( char ch
);
62 int isstringnum ( char * num
);
63 long int pow ( int x
, int y
);
64 long int stringtoint ( char * number
);
66 char * spaces ( int len
, char * seperator
);
67 void refresh ( Player
* p
);
69 void reset ( aClient
* ni
);
72 void delete_monsters ();
73 void delete_masters ();
75 void do_list ( char * u
);
76 void do_register ( char * u
);
77 void do_identify ( char * u
);
78 void do_play ( char * u
);
79 void do_quitg ( char * u
);
80 void do_reset ( char * u
);
81 void do_fight ( char * u
);
82 void do_store ( char * u
);
83 void do_heal ( char * u
);
84 void do_bank ( char * u
);
85 void do_attack ( char * u
);
87 void do_master ( char * u
);
88 void see_master ( char * u
);
89 void do_stats ( char * u
);
91 void showstats ( const char * u
, const char * nick
);
92 void showBankBalance ( const char * u
);
95 char * weapons
[ WNA
] = { "Fists" , "Stick" , "Dagger" , "Quarterstaff" , "Short Sword" ,
96 "Long Sword" , "Silver Spear" , "Battle Axe" , "The Ragnarok" ,
97 "Chain Saw" , "Poison Sword" , "Flame Sword" , "Earth Hammer" ,
98 "Light Saber" , "Masamune" , "Mystical Sword" };
100 char * armors
[ WNA
] = { "Nothing" , "Clothes" , "Leather Vest" , "Chain Mail" , "Plate Armor" ,
101 "Full Body Armor" , "Magic Mail" , "Graphite Suit" , "Steel Suit" ,
102 "Force Field" , "Armor of Light" , "Mythril Vest" , "DemiGod Armor" ,
103 "Hades' Cloak" , "Dragon Scales" , "Mystical Armor" };
105 int prices
[ WNA
- 1 ] = { 200 , 1000 , 3000 , 10000 , 30000 , 100000 , 150000 , 200000 , 400000 ,
106 1000000 , 4000000 , 10000000 , 40000000 , 100000000 , 400000000 };
107 int webonus
[ WNA
] = { 0 , 10 , 15 , 25 , 35 , 45 , 65 , 85 , 125 , 185 , 255 , 355 , 505 , 805 , 1205 , 1805 };
108 int arbonus
[ WNA
] = { 0 , 1 , 3 , 10 , 15 , 25 , 35 , 50 , 75 , 100 , 150 , 225 , 300 , 400 , 600 , 1000 };
110 int hpbonus
[ 11 ] = { 10 , 15 , 20 , 30 , 50 , 75 , 125 , 185 , 250 , 350 , 550 };
111 int strbonus
[ 11 ] = { 5 , 7 , 10 , 12 , 20 , 35 , 50 , 75 , 110 , 150 , 200 };
112 int defbonus
[ 11 ] = { 2 , 3 , 5 , 10 , 15 , 22 , 35 , 60 , 80 , 120 , 150 };
114 void gameserv ( char * source
, char * buf
)
117 cmd
= strtok ( buf
, " " );
119 source
++; // Get rid of that : at the beginning of a :Nick privmsg Gameserv :text
120 cmd
++; // Get rid of that : at the beginning of the :text (command)
122 cout
<< "Source: " << source
<< " \n cmd: " << cmd
<< endl
;
123 long int mn
= midnight ();
132 if ( strnicmp ( cmd
, ":\1PING" , 6 ) == 0 )
135 ts
= strtok ( NULL
, "\1" );
136 notice ( s_GameServ
, source
, "\1PING %s \1" , ts
);
137 } else if ( stricmp ( cmd
, ":\1VERSION\1" ) == 0 ) {
138 notice ( s_GameServ
, source
, "\1VERSION GameServ v1.0b\1" );
139 } else if ( stricmp ( cmd
, "SEARCH" ) == 0 ) {
140 cmd
= strtok ( NULL
, " " );
143 notice ( s_GameServ
, source
, "SYNTAX: /msg %S SEARCH FOREST" );
146 } else if ( stricmp ( cmd
, "FIGHT" ) == 0 ) {
148 } else if ( stricmp ( cmd
, "ATTACK" ) == 0 ) {
150 } else if ( stricmp ( cmd
, "RUN" ) == 0 ) {
152 } else if ( stricmp ( cmd
, "HEAL" ) == 0 ) {
154 } else if ( stricmp ( cmd
, "MASTER" ) == 0 ) {
156 } else if ( stricmp ( cmd
, "STORE" ) == 0 ) {
158 } else if ( stricmp ( cmd
, "BANK" ) == 0 ) {
160 } else if ( stricmp ( cmd
, "PRINT" ) == 0 ) {
161 cout
<< "Printing Clients List: " << endl
;
163 cout
<< " \n Printing Player List: " << endl
;
165 } else if ( stricmp ( cmd
, "LIST" ) == 0 ) {
167 } else if ( stricmp ( cmd
, "REGISTER" ) == 0 ) {
169 } else if ( stricmp ( cmd
, "IDENTIFY" ) == 0 ) {
171 } else if ( stricmp ( cmd
, "HELP" ) == 0 ) {
172 } else if ( stricmp ( cmd
, "STATS" ) == 0 ) {
174 } else if ( stricmp ( cmd
, "SHUTDOWN" ) == 0 ) {
175 char * pass
= strtok ( NULL
, " " );
176 if ( pass
!= NULL
&& ( stricmp ( pass
, adminpass
) == 0 ))
179 raw ( "SQUIT %s :leaving" , servername
);
183 notice ( s_GameServ
, source
, "SYNTAX: /msg %S SHUTDOWN <password>" );
185 } else if ( stricmp ( cmd
, "SAVE" ) == 0 ) {
186 char * pass
= strtok ( NULL
, " " );
187 if ( pass
!= NULL
&& ( stricmp ( pass
, adminpass
) == 0 ))
193 notice ( s_GameServ
, source
, "SYNTAX: /msg %S SAVE <password>" );
195 } else if ( stricmp ( cmd
, "LOAD" ) == 0 ) {
196 char * pass
= strtok ( NULL
, " " );
197 if ( pass
!= NULL
&& ( stricmp ( pass
, adminpass
) == 0 ))
203 notice ( s_GameServ
, source
, "SYNTAX: /msg %S LOAD <password>" );
205 } else if ( stricmp ( cmd
, "RAW" ) == 0 ) {
206 char * pass
= strtok ( NULL
, " " );
207 if ( pass
!= NULL
&& ( stricmp ( pass
, adminpass
) == 0 ))
209 char * rest
= strtok ( NULL
, "" );
214 notice ( s_GameServ
, source
, "SYNTAX: /msg %S RAW <password> <raw>" );
216 } else if ( stricmp ( cmd
, "TESTSTAMP" ) == 0 ) {
217 char * pass
= strtok ( NULL
, " " );
218 if ( pass
!= NULL
&& ( stricmp ( pass
, adminpass
) == 0 ))
221 notice ( s_GameServ
, source
, "Resetting timestamp" );
224 notice ( s_GameServ
, source
, "SYNTAX: /msg %S TESTSTAMP <password>" );
227 source
--; // Bring the : back so we don't leak memory
228 cmd
--; // Same thing :)
231 int stricmp ( const char * s1
, const char * s2
)
235 while (( c
= tolower (* s1
)) == tolower (* s2
)) {
241 if ( c
< tolower (* s2
))
246 void showstats ( const char * u
, const char * nick
)
248 aClient
* ni
, * sender
= find ( u
);
254 cout
<< " \n\n u: " << u
<< " \n nick: " << nick
<< endl
;
255 if (!( ni
= findbynick ( nick
)))
257 notice ( s_GameServ
, u
, " %s not found" , nick
);
262 notice ( s_GameServ
, sender
-> getNick (), "Stats for %s :" , ni
-> stats
-> name
);
264 sprintf ( buf
, "Experience: %l d" , ni
-> stats
-> exp
);
265 space
= spaces ( strlen ( buf
), " " );
266 notice ( s_GameServ
, sender
-> getNick (), " %s%s Level: %d " , buf
, space
,
270 sprintf ( buf
, "Gold: %l d" , ni
-> stats
-> gold
);
271 space
= spaces ( strlen ( buf
), " " );
272 notice ( s_GameServ
, sender
-> getNick (), " %s%s Gold in Bank: %l d" , buf
, space
, ni
-> stats
-> bank
);
275 notice ( s_GameServ
, sender
-> getNick (), "Health Points: %d of %d " , ni
-> stats
-> hp
,
278 sprintf ( buf
, "Strength: %d " , ni
-> stats
-> strength
+ webonus
[ ni
-> stats
-> weapon
]);
279 space
= spaces ( strlen ( buf
), " " );
280 notice ( s_GameServ
, sender
-> getNick (), " %s%s Defense: %d " ,
281 buf
, space
, ni
-> stats
-> defense
+ arbonus
[ ni
-> stats
-> armor
]);
284 sprintf ( buf
, "Armor: %s " , armors
[ ni
-> stats
-> armor
]);
285 space
= spaces ( strlen ( buf
), " " );
286 notice ( s_GameServ
, sender
-> getNick (), " %s%s Weapon: %s " , buf
, space
,
287 weapons
[ ni
-> stats
-> weapon
]);
290 sprintf ( buf
, "Forest Fights: %d " , ni
-> stats
-> forest_fights
);
291 space
= spaces ( strlen ( buf
), " " );
292 notice ( s_GameServ
, sender
-> getNick (), " %s%s Player Fights: %d " , buf
, space
, ni
-> stats
-> player_fights
);
299 char * spaces ( int len
, char * seperator
)
302 final
= new char [ 40 ];
304 strcpy ( final
, seperator
);
305 for ( y
= 0 ; y
< 40 - len
; y
++)
306 strcat ( final
, seperator
);
310 void raw ( const char * fmt
, ...)
315 input
= new char [ 1024 ];
317 memset ( input
, 0 , sizeof ( input
)); // Initialize to NULL
323 case 'd' : sprintf ( input
, " %s%d " , input
, va_arg ( args
, int )); break ;
324 case 's' : sprintf ( input
, " %s%s " , input
, va_arg ( args
, char *)); break ;
325 case 'S' : sprintf ( input
, " %s%s " , input
, s_GameServ
); break ;
328 sprintf ( input
, " %s%l d" , input
, va_arg ( args
, long int )); break ;
333 sprintf ( input
, " %s%c " , input
, * t
);
337 sprintf ( input
, " %s%s " , input
, " \r\n " );
338 cout
<< "input: " << input
<< flush
;
339 sock_puts ( sock
, input
);
343 /* Send a NOTICE from the given source to the given nick. */
345 void notice ( const char * source
, const char * dest
, const char * fmt
, ...)
350 input
= new char [ 1024 ];
355 sprintf ( input
, ": %s NOTICE %s :" , source
, dest
);
359 sprintf ( input
, ": %s NOTICE %s :" , source
, dest
);
366 case 'd' : sprintf ( input
, " %s%d " , input
, va_arg ( args
, int )); break ;
367 case 's' : sprintf ( input
, " %s%s " , input
, va_arg ( args
, char *)); break ;
368 case 'S' : sprintf ( input
, " %s%s " , input
, s_GameServ
); break ;
371 sprintf ( input
, " %s%l d" , input
, va_arg ( args
, long int )); break ;
376 sprintf ( input
, " %s%c " , input
, * t
);
380 sprintf ( input
, " %s%s " , input
, " \r\n " );
381 cout
<< "input: " << input
<< flush
;
382 sock_puts ( sock
, input
);
388 int strnicmp ( const char * s1
, const char * s2
, size_t len
)
394 while (( c
= tolower (* s1
)) == tolower (* s2
) && len
> 0 ) {
395 if ( c
== 0 || -- len
== 0 )
400 if ( c
< tolower (* s2
))
406 char * strtok ( char * str
, const char * delim
)
408 static char * current
= NULL
;
415 current
+= strspn ( current
, delim
);
416 ret
= * current
? current
: NULL
;
417 current
+= strcspn ( current
, delim
);
426 void do_list ( char * u
)
428 ListNode
< aClient
> * temp
;
429 temp
= players
. First ();
430 if (! players
. isEmpty ())
432 notice ( s_GameServ
, u
, "People Playing:" );
435 notice ( s_GameServ
, u
, "IRC: %s Game: %s " , temp
-> getData ()-> getNick (), temp
-> getData ()-> stats
-> name
);
438 notice ( s_GameServ
, u
, "End of List" );
441 notice ( s_GameServ
, u
, "No one is playing" );
443 void do_register ( char * u
)
447 password
= strtok ( NULL
, " " );
449 static char saltChars
[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./" ;
452 salt
[ 0 ] = saltChars
[ rand () % strlen ( saltChars
)];
453 salt
[ 1 ] = saltChars
[ rand () % strlen ( saltChars
)];
458 notice ( s_GameServ
, u
, "SYNTAX: /msg %S REGISTER PASSWORD" );
460 else if (( user
= find ( u
)))
464 user
-> stats
= new Player ( user
);
465 user
-> stats
-> started
= 1 ;
466 user
-> stats
-> user
= user
; // Set the backwards pointer
467 strcpy ( user
-> stats
-> password
, crypt ( password
, salt
));
468 players
. insertAtBack ( user
);
472 notice ( s_GameServ
, u
, "Already registered. Contact a %S admin for help." );
477 void do_identify ( char * u
)
479 char * password
, * name
;
481 name
= strtok ( NULL
, " " );
482 password
= strtok ( NULL
, " " );
484 if (! password
|| ! name
)
486 notice ( s_GameServ
, u
, "SYNTAX: /msg %S IDENTIFY NAME PASSWORD" );
488 else if (!( p
= findplayer ( name
)) || ! p
-> stats
)
489 notice ( s_GameServ
, u
, "Player %s not found" , name
);
490 else if (! check_password ( name
, password
))
492 notice ( s_GameServ
, u
, "Password incorrect" );
494 else if (( user
= find ( u
)))
498 ListNode
< aClient
> * temp
;
499 temp
= players
. Find ( p
);
502 notice ( s_GameServ
, u
, "Fatal error. Contact %S Admin. Buf: %s " ,
506 user
-> stats
= new Player ( p
-> stats
-> name
);
507 cout
<< "Setting data for identified" << endl
;
508 user
-> stats
-> setData ( p
-> stats
);
509 cout
<< "Player Identified" << endl
<< flush
;
513 notice ( s_GameServ
, u
, "Password Accepted. Identified." );
518 notice ( s_GameServ
, u
, "Already identified. Contact a %S admin for help." );
523 void do_stats ( char * u
)
528 nick
= strtok ( NULL
, " " );
532 showstats ( u
, source
-> getNick ());
540 for ( int x
= 0 ; x
< LEVELS
; x
++)
541 masters
[ x
] = new Monster
;
543 strcpy ( masters
[ 0 ]-> name
, "Old Bones" );
544 strcpy ( masters
[ 0 ]-> weapon
, "Dull Sword Cane" );
545 masters
[ 0 ]-> strength
= 30 ;
546 masters
[ 0 ]-> gold
= 0 ;
548 masters
[ 0 ]-> maxhp
= 30 ;
550 strcpy ( masters
[ 0 ]-> death
, "You have done well my student, but the road is long. Use your new strength with humility and honor as you progress in levels!" );
552 strcpy ( masters
[ 1 ]-> name
, "Master Chang" );
553 strcpy ( masters
[ 1 ]-> weapon
, "Nanchaku" );
554 masters
[ 1 ]-> strength
= 57 ;
555 masters
[ 1 ]-> gold
= 0 ;
557 masters
[ 1 ]-> maxhp
= 40 ;
559 strcpy ( masters
[ 1 ]-> death
, "You try to make out what Master Chang is saying, but the only thing you catch is something about a grasshopper." );
561 strcpy ( masters
[ 2 ]-> name
, "Chuck Norris" );
562 strcpy ( masters
[ 2 ]-> weapon
, "Ranger Kick" );
563 masters
[ 2 ]-> strength
= 85 ;
564 masters
[ 2 ]-> gold
= 0 ;
566 masters
[ 2 ]-> maxhp
= 70 ;
568 strcpy ( masters
[ 2 ]-> death
, "Be strong, and keep your goals in site. Drink milk, and don't do drugs. One day you may be fighting next to me as a Texas Ranger YEEHAW!" );
571 strcpy ( masters
[ 3 ]-> name
, "Mr. Miagi" );
572 strcpy ( masters
[ 3 ]-> weapon
, "Petrified Bonsai" );
573 masters
[ 3 ]-> strength
= 100 ;
574 masters
[ 3 ]-> gold
= 0 ;
576 masters
[ 3 ]-> maxhp
= 120 ;
577 masters
[ 3 ]-> hp
= 120 ;
578 strcpy ( masters
[ 3 ]-> death
, "Skill comes from repeating the correct but seemingly mundane actions. Wax ON, wax OFF!" );
580 strcpy ( masters
[ 4 ]-> name
, "Jackie Chan" );
581 strcpy ( masters
[ 4 ]-> weapon
, "Kung Fu Kick" );
582 masters
[ 4 ]-> strength
= 125 ;
583 masters
[ 4 ]-> gold
= 0 ;
585 masters
[ 4 ]-> maxhp
= 200 ;
586 masters
[ 4 ]-> hp
= 200 ;
587 strcpy ( masters
[ 4 ]-> death
, "I like to let people talk who like to talk... it's easier to find out how full of it they really are!" );
589 strcpy ( masters
[ 5 ]-> name
, "Jet Li" );
590 strcpy ( masters
[ 5 ]-> weapon
, "Motorcycle" );
591 masters
[ 5 ]-> strength
= 150 ;
592 masters
[ 5 ]-> gold
= 0 ;
594 masters
[ 5 ]-> maxhp
= 400 ;
595 masters
[ 5 ]-> hp
= 400 ;
596 strcpy ( masters
[ 5 ]-> death
, "Failure is a fuel for excuses. It's the doing the do, that makes the making." );
599 strcpy ( masters
[ 6 ]-> name
, "Muhammad Ali" );
600 strcpy ( masters
[ 6 ]-> weapon
, "Quick Jab" );
601 masters
[ 6 ]-> strength
= 175 ;
602 masters
[ 6 ]-> gold
= 0 ;
604 masters
[ 6 ]-> maxhp
= 600 ;
605 masters
[ 6 ]-> hp
= 600 ;
606 strcpy ( masters
[ 6 ]-> death
, "It's just a job. Grass grows, birds fly, waves pound the sand. I beat people up." );
608 strcpy ( masters
[ 7 ]-> name
, "Li Mu Bai" );
609 strcpy ( masters
[ 7 ]-> weapon
, "Green Destiny" );
610 masters
[ 7 ]-> strength
= 200 ;
611 masters
[ 7 ]-> gold
= 0 ;
613 masters
[ 7 ]-> maxhp
= 800 ;
614 masters
[ 7 ]-> hp
= 800 ;
615 strcpy ( masters
[ 7 ]-> death
, "No growth without resistance. No action without reaction. No desire without restraint." );
618 strcpy ( masters
[ 8 ]-> name
, "Jimmy Wang Yu" );
619 strcpy ( masters
[ 8 ]-> weapon
, "Flying Guillotine" );
620 masters
[ 8 ]-> strength
= 275 ;
621 masters
[ 8 ]-> gold
= 0 ;
623 masters
[ 8 ]-> maxhp
= 1200 ;
624 masters
[ 8 ]-> hp
= 1200 ;
625 strcpy ( masters
[ 8 ]-> death
, "You have beaten the one armed boxer. Proceed with caution!" );
627 strcpy ( masters
[ 9 ]-> name
, "Wong Fei Hung" );
628 strcpy ( masters
[ 9 ]-> weapon
, "Drunken Boxing" );
629 masters
[ 9 ]-> strength
= 350 ;
630 masters
[ 9 ]-> gold
= 0 ;
632 masters
[ 9 ]-> maxhp
= 1800 ;
633 masters
[ 9 ]-> hp
= 1800 ;
634 strcpy ( masters
[ 9 ]-> death
, "Hiccup! Monkey drinks master's wine!" );
636 strcpy ( masters
[ 10 ]-> name
, "Bruce Lee" );
637 strcpy ( masters
[ 10 ]-> weapon
, "Fists of fury" );
638 masters
[ 10 ]-> strength
= 575 ;
639 masters
[ 10 ]-> gold
= 0 ;
640 masters
[ 10 ]-> exp
= 0 ;
641 masters
[ 10 ]-> maxhp
= 2500 ;
642 masters
[ 10 ]-> hp
= 2500 ;
643 strcpy ( masters
[ 10 ]-> death
, "You must learn to concentrate. It is like a finger pointing away to the moon... DONT concentrate on the finger, or you will miss all the heavenly glory." );
649 for ( int x
= 0 ; x
< LEVELS
; x
++)
650 for ( int y
= 0 ; y
< MONSTERS
; y
++)
651 monsters
[ x
][ y
] = new Monster ();
653 // Hard coded for now - Kain
655 strcpy ( monsters
[ 0 ][ 0 ]-> name
, "Slime" );
656 strcpy ( monsters
[ 0 ][ 0 ]-> weapon
, "Acid Goo" );
657 monsters
[ 0 ][ 0 ]-> strength
= 6 ;
658 monsters
[ 0 ][ 0 ]-> gold
= 50 ;
659 monsters
[ 0 ][ 0 ]-> exp
= 3 ;
660 monsters
[ 0 ][ 0 ]-> maxhp
= 9 ;
661 strcpy ( monsters
[ 0 ][ 0 ]-> death
, "The slime oozes into nothing... you clean the acid goo off of your weapon" );
663 strcpy ( monsters
[ 0 ][ 1 ]-> name
, "Ghost" );
664 strcpy ( monsters
[ 0 ][ 1 ]-> weapon
, "Cold Breath" );
665 monsters
[ 0 ][ 1 ]-> strength
= 8 ;
666 monsters
[ 0 ][ 1 ]-> gold
= 100 ;
667 monsters
[ 0 ][ 1 ]-> exp
= 10 ;
668 monsters
[ 0 ][ 1 ]-> maxhp
= 10 ;
669 strcpy ( monsters
[ 0 ][ 1 ]-> death
, "You feel a chill as the spirit leaves the realm." );
671 strcpy ( monsters
[ 0 ][ 2 ]-> name
, "Ugly Rodent" );
672 strcpy ( monsters
[ 0 ][ 2 ]-> weapon
, "Sharp Teeth" );
673 monsters
[ 0 ][ 2 ]-> strength
= 9 ;
674 monsters
[ 0 ][ 2 ]-> gold
= 75 ;
675 monsters
[ 0 ][ 2 ]-> exp
= 8 ;
676 monsters
[ 0 ][ 2 ]-> maxhp
= 13 ;
677 strcpy ( monsters
[ 0 ][ 2 ]-> death
, "You stomp on the Ugly Rodent's remains for a finishing blow." );
679 strcpy ( monsters
[ 0 ][ 3 ]-> name
, "Whart Hog" );
680 strcpy ( monsters
[ 0 ][ 3 ]-> weapon
, "Tusks" );
681 monsters
[ 0 ][ 3 ]-> strength
= 10 ;
682 monsters
[ 0 ][ 3 ]-> gold
= 80 ;
683 monsters
[ 0 ][ 3 ]-> exp
= 6 ;
684 monsters
[ 0 ][ 3 ]-> maxhp
= 10 ;
685 strcpy ( monsters
[ 0 ][ 3 ]-> death
, "You cook and eat the hog for good measure!" );
687 strcpy ( monsters
[ 0 ][ 4 ]-> name
, "Pesky Kid" );
688 strcpy ( monsters
[ 0 ][ 4 ]-> weapon
, "Slingshot" );
689 monsters
[ 0 ][ 4 ]-> strength
= 8 ;
690 monsters
[ 0 ][ 4 ]-> gold
= 30 ;
691 monsters
[ 0 ][ 4 ]-> exp
= 4 ;
692 monsters
[ 0 ][ 4 ]-> maxhp
= 6 ;
693 strcpy ( monsters
[ 0 ][ 4 ]-> death
, "You take his slingshot and snap the band, sending the kid crying home to mom!" );
695 strcpy ( monsters
[ 0 ][ 5 ]-> name
, "Playground Bully" );
696 strcpy ( monsters
[ 0 ][ 5 ]-> weapon
, "Painful Noogie" );
697 monsters
[ 0 ][ 5 ]-> strength
= 11 ;
698 monsters
[ 0 ][ 5 ]-> gold
= 44 ;
699 monsters
[ 0 ][ 5 ]-> exp
= 6 ;
700 monsters
[ 0 ][ 5 ]-> maxhp
= 10 ;
701 strcpy ( monsters
[ 0 ][ 5 ]-> death
, "You give him an indian burn, and punt him across the schoolyard!" );
703 strcpy ( monsters
[ 0 ][ 6 ]-> name
, "Small Imp" );
704 strcpy ( monsters
[ 0 ][ 6 ]-> weapon
, "Dagger" );
705 monsters
[ 0 ][ 6 ]-> strength
= 6 ;
706 monsters
[ 0 ][ 6 ]-> gold
= 64 ;
707 monsters
[ 0 ][ 6 ]-> exp
= 10 ;
708 monsters
[ 0 ][ 6 ]-> maxhp
= 10 ;
709 strcpy ( monsters
[ 0 ][ 6 ]-> death
, "You can't help but laugh as he stumbles and falls onto his own dagger!" );
711 strcpy ( monsters
[ 0 ][ 7 ]-> name
, "Little Monkey" );
712 strcpy ( monsters
[ 0 ][ 7 ]-> weapon
, "Monkey Wrench" );
713 monsters
[ 0 ][ 7 ]-> strength
= 6 ;
714 monsters
[ 0 ][ 7 ]-> gold
= 53 ;
715 monsters
[ 0 ][ 7 ]-> exp
= 9 ;
716 monsters
[ 0 ][ 7 ]-> maxhp
= 9 ;
717 strcpy ( monsters
[ 0 ][ 7 ]-> death
, "You want to cook it, but you just can't think of eating something that looks so human!" );
719 strcpy ( monsters
[ 0 ][ 8 ]-> name
, "Grub Worm" );
720 strcpy ( monsters
[ 0 ][ 8 ]-> weapon
, "Minor Nudge" );
721 monsters
[ 0 ][ 8 ]-> strength
= 2 ;
722 monsters
[ 0 ][ 8 ]-> gold
= 10 ;
723 monsters
[ 0 ][ 8 ]-> exp
= 3 ;
724 monsters
[ 0 ][ 8 ]-> maxhp
= 3 ;
725 strcpy ( monsters
[ 0 ][ 8 ]-> death
, "You decide to save the poor little fella for your next fishing trip." );
727 strcpy ( monsters
[ 0 ][ 9 ]-> name
, "Drakee" );
728 strcpy ( monsters
[ 0 ][ 9 ]-> weapon
, "Tail Slap" );
729 monsters
[ 0 ][ 9 ]-> strength
= 5 ;
730 monsters
[ 0 ][ 9 ]-> gold
= 22 ;
731 monsters
[ 0 ][ 9 ]-> exp
= 7 ;
732 monsters
[ 0 ][ 9 ]-> maxhp
= 5 ;
733 strcpy ( monsters
[ 0 ][ 9 ]-> death
, "You pull the little Drakee by its tale and slam it down on a dry stump!" );
735 strcpy ( monsters
[ 0 ][ 10 ]-> name
, "Fat Slob" );
736 strcpy ( monsters
[ 0 ][ 10 ]-> weapon
, "Smelly Breath" );
737 monsters
[ 0 ][ 10 ]-> strength
= 6 ;
738 monsters
[ 0 ][ 10 ]-> gold
= 40 ;
739 monsters
[ 0 ][ 10 ]-> exp
= 10 ;
740 monsters
[ 0 ][ 10 ]-> maxhp
= 7 ;
741 strcpy ( monsters
[ 0 ][ 10 ]-> death
, "You kick his stomach for fun, and are thrown back by the spring of it all!" );
743 strcpy ( monsters
[ 0 ][ 11 ]-> name
, "Lost Warrior" );
744 strcpy ( monsters
[ 0 ][ 11 ]-> weapon
, "Long Sword" );
745 monsters
[ 0 ][ 11 ]-> strength
= 10 ;
746 monsters
[ 0 ][ 11 ]-> gold
= 250 ;
747 monsters
[ 0 ][ 11 ]-> exp
= 19 ;
748 monsters
[ 0 ][ 11 ]-> maxhp
= 15 ;
749 strcpy ( monsters
[ 0 ][ 11 ]-> death
, "You give him a proper burial in respect for the dead warrior." );
751 strcpy ( monsters
[ 1 ][ 0 ]-> name
, "Lost Warrior's Cousin Larry" );
752 strcpy ( monsters
[ 1 ][ 0 ]-> weapon
, "Wood Axe" );
753 monsters
[ 1 ][ 0 ]-> strength
= 19 ;
754 monsters
[ 1 ][ 0 ]-> gold
= 134 ;
755 monsters
[ 1 ][ 0 ]-> exp
= 24 ;
756 monsters
[ 1 ][ 0 ]-> maxhp
= 30 ;
757 strcpy ( monsters
[ 1 ][ 0 ]-> death
, "He was pretty pissed you killed his cousin, but he seems to have suffered the same fate!" );
759 strcpy ( monsters
[ 1 ][ 1 ]-> name
, "Sandman" );
760 strcpy ( monsters
[ 1 ][ 1 ]-> weapon
, "Sleeping Dust" );
761 monsters
[ 1 ][ 1 ]-> strength
= 25 ;
762 monsters
[ 1 ][ 1 ]-> gold
= 80 ;
763 monsters
[ 1 ][ 1 ]-> exp
= 6 ;
764 monsters
[ 1 ][ 1 ]-> maxhp
= 27 ;
765 strcpy ( monsters
[ 1 ][ 1 ]-> death
, "You put the sandman to his final sleep." );
767 strcpy ( monsters
[ 1 ][ 2 ]-> name
, "Dirty Prostitute" );
768 strcpy ( monsters
[ 1 ][ 2 ]-> weapon
, "Stiletto Heel" );
769 monsters
[ 1 ][ 2 ]-> strength
= 21 ;
770 monsters
[ 1 ][ 2 ]-> gold
= 160 ;
771 monsters
[ 1 ][ 2 ]-> exp
= 12 ;
772 monsters
[ 1 ][ 2 ]-> maxhp
= 25 ;
773 strcpy ( monsters
[ 1 ][ 2 ]-> death
, "Your pimp hand is strong!" );
775 strcpy ( monsters
[ 1 ][ 3 ]-> name
, "Goblin Gardener" );
776 strcpy ( monsters
[ 1 ][ 3 ]-> weapon
, "Garden Spade" );
777 monsters
[ 1 ][ 3 ]-> strength
= 18 ;
778 monsters
[ 1 ][ 3 ]-> gold
= 130 ;
779 monsters
[ 1 ][ 3 ]-> exp
= 8 ;
780 monsters
[ 1 ][ 3 ]-> maxhp
= 20 ;
781 strcpy ( monsters
[ 1 ][ 3 ]-> death
, "You trample on his garden after slaying him... that felt good!" );
783 strcpy ( monsters
[ 1 ][ 4 ]-> name
, "Evil Elf" );
784 strcpy ( monsters
[ 1 ][ 4 ]-> weapon
, "Dark Bow" );
785 monsters
[ 1 ][ 4 ]-> strength
= 23 ;
786 monsters
[ 1 ][ 4 ]-> gold
= 136 ;
787 monsters
[ 1 ][ 4 ]-> exp
= 13 ;
788 monsters
[ 1 ][ 4 ]-> maxhp
= 24 ;
789 strcpy ( monsters
[ 1 ][ 4 ]-> death
, "Elves are usually nice you thought... hmm." );
791 strcpy ( monsters
[ 1 ][ 5 ]-> name
, "Viking Warrior" );
792 strcpy ( monsters
[ 1 ][ 5 ]-> weapon
, "Broad Sword" );
793 monsters
[ 1 ][ 5 ]-> strength
= 21 ;
794 monsters
[ 1 ][ 5 ]-> gold
= 330 ;
795 monsters
[ 1 ][ 5 ]-> exp
= 20 ;
796 monsters
[ 1 ][ 5 ]-> maxhp
= 18 ;
797 strcpy ( monsters
[ 1 ][ 5 ]-> death
, "You heard vikings were big, but not THAT big you thought." );
799 strcpy ( monsters
[ 1 ][ 6 ]-> name
, "Wicked Witch" );
800 strcpy ( monsters
[ 1 ][ 6 ]-> weapon
, "Cackling Laugh" );
801 monsters
[ 1 ][ 6 ]-> strength
= 20 ;
802 monsters
[ 1 ][ 6 ]-> gold
= 130 ;
803 monsters
[ 1 ][ 6 ]-> exp
= 20 ;
804 monsters
[ 1 ][ 6 ]-> maxhp
= 26 ;
805 strcpy ( monsters
[ 1 ][ 6 ]-> death
, "Just for kicks, you splash some water on her and watch her melt." );
807 strcpy ( monsters
[ 1 ][ 7 ]-> name
, "Vampire Bat" );
808 strcpy ( monsters
[ 1 ][ 7 ]-> weapon
, "Blood Sucking Fangs" );
809 monsters
[ 1 ][ 7 ]-> strength
= 18 ;
810 monsters
[ 1 ][ 7 ]-> gold
= 125 ;
811 monsters
[ 1 ][ 7 ]-> exp
= 21 ;
812 monsters
[ 1 ][ 7 ]-> maxhp
= 29 ;
813 strcpy ( monsters
[ 1 ][ 7 ]-> death
, "You fry up the bat and eat it... needs garlic." );
815 strcpy ( monsters
[ 1 ][ 8 ]-> name
, "Thorn Bush" );
816 strcpy ( monsters
[ 1 ][ 8 ]-> weapon
, "101 Thorns" );
817 monsters
[ 1 ][ 8 ]-> strength
= 16 ;
818 monsters
[ 1 ][ 8 ]-> gold
= 94 ;
819 monsters
[ 1 ][ 8 ]-> exp
= 15 ;
820 monsters
[ 1 ][ 8 ]-> maxhp
= 25 ;
821 strcpy ( monsters
[ 1 ][ 8 ]-> death
, "You set the bush ablaze and roast some marshmallows." );
823 strcpy ( monsters
[ 1 ][ 9 ]-> name
, "Barbarian" );
824 strcpy ( monsters
[ 1 ][ 9 ]-> weapon
, "Heavy Sword" );
825 monsters
[ 1 ][ 9 ]-> strength
= 29 ;
826 monsters
[ 1 ][ 9 ]-> gold
= 250 ;
827 monsters
[ 1 ][ 9 ]-> exp
= 25 ;
828 monsters
[ 1 ][ 9 ]-> maxhp
= 30 ;
829 strcpy ( monsters
[ 1 ][ 9 ]-> death
, "You listen to him moan as he falls over dead." );
831 strcpy ( monsters
[ 1 ][ 10 ]-> name
, "Crypt Rat" );
832 strcpy ( monsters
[ 1 ][ 10 ]-> weapon
, "Stinging Bite" );
833 monsters
[ 1 ][ 10 ]-> strength
= 25 ;
834 monsters
[ 1 ][ 10 ]-> gold
= 119 ;
835 monsters
[ 1 ][ 10 ]-> exp
= 20 ;
836 monsters
[ 1 ][ 10 ]-> maxhp
= 26 ;
837 strcpy ( monsters
[ 1 ][ 10 ]-> death
, "You squash the little rodent for fear that it might not be dead." );
839 strcpy ( monsters
[ 1 ][ 11 ]-> name
, "Small Orc" );
840 strcpy ( monsters
[ 1 ][ 11 ]-> weapon
, "blade" );
841 monsters
[ 1 ][ 11 ]-> strength
= 28 ;
842 monsters
[ 1 ][ 11 ]-> gold
= 300 ;
843 monsters
[ 1 ][ 11 ]-> exp
= 30 ;
844 monsters
[ 1 ][ 11 ]-> maxhp
= 36 ;
845 strcpy ( monsters
[ 1 ][ 11 ]-> death
, "It's an ugly one, and it would've grown up to be a terror..." );
847 strcpy ( monsters
[ 2 ][ 0 ]-> name
, "Teferi" );
848 strcpy ( monsters
[ 2 ][ 0 ]-> weapon
, "Puzzle Box" );
849 monsters
[ 2 ][ 0 ]-> strength
= 29 ;
850 monsters
[ 2 ][ 0 ]-> gold
= 380 ;
851 monsters
[ 2 ][ 0 ]-> exp
= 18 ;
852 monsters
[ 2 ][ 0 ]-> maxhp
= 29 ;
853 strcpy ( monsters
[ 2 ][ 0 ]-> death
, "It was a puzzling experience." );
855 strcpy ( monsters
[ 2 ][ 1 ]-> name
, "Spineless Thug" );
856 strcpy ( monsters
[ 2 ][ 1 ]-> weapon
, "Spiked Bat" );
857 monsters
[ 2 ][ 1 ]-> strength
= 37 ;
858 monsters
[ 2 ][ 1 ]-> gold
= 384 ;
859 monsters
[ 2 ][ 1 ]-> exp
= 27 ;
860 monsters
[ 2 ][ 1 ]-> maxhp
= 32 ;
861 strcpy ( monsters
[ 2 ][ 1 ]-> death
, "See you at the crossroads!" );
863 strcpy ( monsters
[ 2 ][ 2 ]-> name
, "Pyromaniac" );
864 strcpy ( monsters
[ 2 ][ 2 ]-> weapon
, "Flame Thrower" );
865 monsters
[ 2 ][ 2 ]-> strength
= 29 ;
866 monsters
[ 2 ][ 2 ]-> gold
= 563 ;
867 monsters
[ 2 ][ 2 ]-> exp
= 22 ;
868 monsters
[ 2 ][ 2 ]-> maxhp
= 45 ;
869 strcpy ( monsters
[ 2 ][ 2 ]-> death
, "He chants FIRE FIRE as he falls to the ground... a burning heap of flesh." );
871 strcpy ( monsters
[ 2 ][ 3 ]-> name
, "Evil Enchantress" );
872 strcpy ( monsters
[ 2 ][ 3 ]-> weapon
, "Deadly Spell" );
873 monsters
[ 2 ][ 3 ]-> strength
= 50 ;
874 monsters
[ 2 ][ 3 ]-> gold
= 830 ;
875 monsters
[ 2 ][ 3 ]-> exp
= 35 ;
876 monsters
[ 2 ][ 3 ]-> maxhp
= 35 ;
877 strcpy ( monsters
[ 2 ][ 3 ]-> death
, "She looked just about as good as she fought." );
879 strcpy ( monsters
[ 2 ][ 4 ]-> name
, "Killer Leprechaun" );
880 strcpy ( monsters
[ 2 ][ 4 ]-> weapon
, "Gold Rush" );
881 monsters
[ 2 ][ 4 ]-> strength
= 35 ;
882 monsters
[ 2 ][ 4 ]-> gold
= 1300 ;
883 monsters
[ 2 ][ 4 ]-> exp
= 30 ;
884 monsters
[ 2 ][ 4 ]-> maxhp
= 37 ;
885 strcpy ( monsters
[ 2 ][ 4 ]-> death
, "You steal his pot of gold... that's a lot of money!" );
887 strcpy ( monsters
[ 2 ][ 5 ]-> name
, "Avalanche Rider" );
888 strcpy ( monsters
[ 2 ][ 5 ]-> weapon
, "Huge Snowball" );
889 monsters
[ 2 ][ 5 ]-> strength
= 32 ;
890 monsters
[ 2 ][ 5 ]-> gold
= 700 ;
891 monsters
[ 2 ][ 5 ]-> exp
= 32 ;
892 monsters
[ 2 ][ 5 ]-> maxhp
= 38 ;
893 strcpy ( monsters
[ 2 ][ 5 ]-> death
, "You take his snowboard and snap it in two!" );
895 strcpy ( monsters
[ 2 ][ 6 ]-> name
, "Blundering Idiot" );
896 strcpy ( monsters
[ 2 ][ 6 ]-> weapon
, "Stupidity" );
897 monsters
[ 2 ][ 6 ]-> strength
= 14 ;
898 monsters
[ 2 ][ 6 ]-> gold
= 700 ;
899 monsters
[ 2 ][ 6 ]-> exp
= 20 ;
900 monsters
[ 2 ][ 6 ]-> maxhp
= 29 ;
901 strcpy ( monsters
[ 2 ][ 6 ]-> death
, "Now there's one person you don't feel sorry for killing!" );
903 strcpy ( monsters
[ 2 ][ 7 ]-> name
, "Militant Anarchist" );
904 strcpy ( monsters
[ 2 ][ 7 ]-> weapon
, "Molotov Cocktail" );
905 monsters
[ 2 ][ 7 ]-> strength
= 33 ;
906 monsters
[ 2 ][ 7 ]-> gold
= 245 ;
907 monsters
[ 2 ][ 7 ]-> exp
= 45 ;
908 monsters
[ 2 ][ 7 ]-> maxhp
= 32 ;
909 strcpy ( monsters
[ 2 ][ 7 ]-> death
, "Order has been restored for now..." );
911 strcpy ( monsters
[ 2 ][ 8 ]-> name
, "Scathe Zombies" );
912 strcpy ( monsters
[ 2 ][ 8 ]-> weapon
, "Death Grip" );
913 monsters
[ 2 ][ 8 ]-> strength
= 38 ;
914 monsters
[ 2 ][ 8 ]-> gold
= 763 ;
915 monsters
[ 2 ][ 8 ]-> exp
= 15 ;
916 monsters
[ 2 ][ 8 ]-> maxhp
= 45 ;
917 strcpy ( monsters
[ 2 ][ 8 ]-> death
, "That was perhaps the scariest experience of your life." );
919 strcpy ( monsters
[ 2 ][ 9 ]-> name
, "Spitting Llama" );
920 strcpy ( monsters
[ 2 ][ 9 ]-> weapon
, "Spit Spray" );
921 monsters
[ 2 ][ 9 ]-> strength
= 48 ;
922 monsters
[ 2 ][ 9 ]-> gold
= 638 ;
923 monsters
[ 2 ][ 9 ]-> exp
= 28 ;
924 monsters
[ 2 ][ 9 ]-> maxhp
= 34 ;
925 strcpy ( monsters
[ 2 ][ 9 ]-> death
, "You wipe the spit off your face and fling it back at the Llama." );
927 strcpy ( monsters
[ 2 ][ 10 ]-> name
, "Juggalo" );
928 strcpy ( monsters
[ 2 ][ 10 ]-> weapon
, "Clown Axe" );
929 monsters
[ 2 ][ 10 ]-> strength
= 60 ;
930 monsters
[ 2 ][ 10 ]-> gold
= 650 ;
931 monsters
[ 2 ][ 10 ]-> exp
= 30 ;
932 monsters
[ 2 ][ 10 ]-> maxhp
= 29 ;
933 strcpy ( monsters
[ 2 ][ 10 ]-> death
, "What is a Juggalo? I don't know!" );
935 strcpy ( monsters
[ 2 ][ 11 ]-> name
, "The Boogie Man" );
936 strcpy ( monsters
[ 2 ][ 11 ]-> weapon
, "Striking Fear" );
937 monsters
[ 2 ][ 11 ]-> strength
= 46 ;
938 monsters
[ 2 ][ 11 ]-> gold
= 600 ;
939 monsters
[ 2 ][ 11 ]-> exp
= 35 ;
940 monsters
[ 2 ][ 11 ]-> maxhp
= 27 ;
941 strcpy ( monsters
[ 2 ][ 11 ]-> death
, "He's scared you for the very last time!" );
943 strcpy ( monsters
[ 3 ][ 0 ]-> name
, "Living Fire" );
944 strcpy ( monsters
[ 3 ][ 0 ]-> weapon
, "Scorching Wind" );
945 monsters
[ 3 ][ 0 ]-> strength
= 55 ;
946 monsters
[ 3 ][ 0 ]-> gold
= 1100 ;
947 monsters
[ 3 ][ 0 ]-> exp
= 36 ;
948 monsters
[ 3 ][ 0 ]-> maxhp
= 55 ;
949 strcpy ( monsters
[ 3 ][ 0 ]-> death
, "You extinguish the Living Flame once and for all!" );
951 strcpy ( monsters
[ 3 ][ 1 ]-> name
, "Raging Orc" );
952 strcpy ( monsters
[ 3 ][ 1 ]-> weapon
, "Orcish Artillary" );
953 monsters
[ 3 ][ 1 ]-> strength
= 89 ;
954 monsters
[ 3 ][ 1 ]-> gold
= 900 ;
955 monsters
[ 3 ][ 1 ]-> exp
= 25 ;
956 monsters
[ 3 ][ 1 ]-> maxhp
= 50 ;
957 strcpy ( monsters
[ 3 ][ 1 ]-> death
, "This orc was a bit tougher than you remembered!" );
959 strcpy ( monsters
[ 3 ][ 2 ]-> name
, "Huge Tarantula" );
960 strcpy ( monsters
[ 3 ][ 2 ]-> weapon
, "Tangling Web" );
961 monsters
[ 3 ][ 2 ]-> strength
= 59 ;
962 monsters
[ 3 ][ 2 ]-> gold
= 1000 ;
963 monsters
[ 3 ][ 2 ]-> exp
= 35 ;
964 monsters
[ 3 ][ 2 ]-> maxhp
= 60 ;
965 strcpy ( monsters
[ 3 ][ 2 ]-> death
, "You're glad you overcame your arachniphobia so soon!" );
967 strcpy ( monsters
[ 3 ][ 3 ]-> name
, "Rabid Wolf" );
968 strcpy ( monsters
[ 3 ][ 3 ]-> weapon
, "Cujo Bite" );
969 monsters
[ 3 ][ 3 ]-> strength
= 40 ;
970 monsters
[ 3 ][ 3 ]-> gold
= 1200 ;
971 monsters
[ 3 ][ 3 ]-> exp
= 47 ;
972 monsters
[ 3 ][ 3 ]-> maxhp
= 76 ;
973 strcpy ( monsters
[ 3 ][ 3 ]-> death
, "The mutt falls over dead as white foam drips from its deadly canines..." );
975 strcpy ( monsters
[ 3 ][ 4 ]-> name
, "Goblin Fighter" );
976 strcpy ( monsters
[ 3 ][ 4 ]-> weapon
, "Morning Star" );
977 monsters
[ 3 ][ 4 ]-> strength
= 38 ;
978 monsters
[ 3 ][ 4 ]-> gold
= 700 ;
979 monsters
[ 3 ][ 4 ]-> exp
= 30 ;
980 monsters
[ 3 ][ 4 ]-> maxhp
= 75 ;
981 strcpy ( monsters
[ 3 ][ 4 ]-> death
, "He almost caught you with his chain mace, but you sliced off his head." );
983 strcpy ( monsters
[ 3 ][ 5 ]-> name
, "Grizzly Bear" );
984 strcpy ( monsters
[ 3 ][ 5 ]-> weapon
, "Razor Claws" );
985 monsters
[ 3 ][ 5 ]-> strength
= 68 ;
986 monsters
[ 3 ][ 5 ]-> gold
= 1747 ;
987 monsters
[ 3 ][ 5 ]-> exp
= 81 ;
988 monsters
[ 3 ][ 5 ]-> maxhp
= 51 ;
989 strcpy ( monsters
[ 3 ][ 5 ]-> death
, "It almost got you this time... better be careful" );
991 strcpy ( monsters
[ 3 ][ 6 ]-> name
, "Skeleton Man" );
992 strcpy ( monsters
[ 3 ][ 6 ]-> weapon
, "Leg Bone" );
993 monsters
[ 3 ][ 6 ]-> strength
= 70 ;
994 monsters
[ 3 ][ 6 ]-> gold
= 597 ;
995 monsters
[ 3 ][ 6 ]-> exp
= 57 ;
996 monsters
[ 3 ][ 6 ]-> maxhp
= 60 ;
997 strcpy ( monsters
[ 3 ][ 6 ]-> death
, "As a finisher, you wind up with the broad side of your weapon and hit his skull off for a home run!" );
999 strcpy ( monsters
[ 3 ][ 7 ]-> name
, "Young Werewolf" );
1000 strcpy ( monsters
[ 3 ][ 7 ]-> weapon
, "Howling Bites" );
1001 monsters
[ 3 ][ 7 ]-> strength
= 75 ;
1002 monsters
[ 3 ][ 7 ]-> gold
= 1742 ;
1003 monsters
[ 3 ][ 7 ]-> exp
= 65 ;
1004 monsters
[ 3 ][ 7 ]-> maxhp
= 42 ;
1005 strcpy ( monsters
[ 3 ][ 7 ]-> death
, "You scatter the wolf's body parts in hopes he will stay dead!" );
1007 strcpy ( monsters
[ 3 ][ 8 ]-> name
, "Dark Infantry" );
1008 strcpy ( monsters
[ 3 ][ 8 ]-> weapon
, "Flesh Reaper" );
1009 monsters
[ 3 ][ 8 ]-> strength
= 69 ;
1010 monsters
[ 3 ][ 8 ]-> gold
= 870 ;
1011 monsters
[ 3 ][ 8 ]-> exp
= 43 ;
1012 monsters
[ 3 ][ 8 ]-> maxhp
= 65 ;
1013 strcpy ( monsters
[ 3 ][ 8 ]-> death
, "Light has prevailed this time... but it's only so long before you meet again." );
1015 strcpy ( monsters
[ 3 ][ 9 ]-> name
, "Erie Spirit" );
1016 strcpy ( monsters
[ 3 ][ 9 ]-> weapon
, "Deadly Grin" );
1017 monsters
[ 3 ][ 9 ]-> strength
= 63 ;
1018 monsters
[ 3 ][ 9 ]-> gold
= 1300 ;
1019 monsters
[ 3 ][ 9 ]-> exp
= 32 ;
1020 monsters
[ 3 ][ 9 ]-> maxhp
= 50 ;
1021 strcpy ( monsters
[ 3 ][ 9 ]-> death
, "His cousin the ghost was a little bit easier." );
1023 strcpy ( monsters
[ 3 ][ 10 ]-> name
, "Gollum" );
1024 strcpy ( monsters
[ 3 ][ 10 ]-> weapon
, "Precious Treasure" );
1025 monsters
[ 3 ][ 10 ]-> strength
= 66 ;
1026 monsters
[ 3 ][ 10 ]-> gold
= 1492 ;
1027 monsters
[ 3 ][ 10 ]-> exp
= 73 ;
1028 monsters
[ 3 ][ 10 ]-> maxhp
= 54 ;
1029 strcpy ( monsters
[ 3 ][ 10 ]-> death
, "Gollum screams out \" MY PRECIOUS \" as his small body falls limp from your blow." );
1031 strcpy ( monsters
[ 3 ][ 11 ]-> name
, "Rock Fighter" );
1032 strcpy ( monsters
[ 3 ][ 11 ]-> weapon
, "Small Boulders" );
1033 monsters
[ 3 ][ 11 ]-> strength
= 87 ;
1034 monsters
[ 3 ][ 11 ]-> gold
= 1742 ;
1035 monsters
[ 3 ][ 11 ]-> exp
= 99 ;
1036 monsters
[ 3 ][ 11 ]-> maxhp
= 65 ;
1037 strcpy ( monsters
[ 3 ][ 11 ]-> death
, "You dodge his last rock, and counter with a low blow, cutting off his legs." );
1040 strcpy ( monsters
[ 4 ][ 0 ]-> name
, "Giant Sphinx" );
1041 strcpy ( monsters
[ 4 ][ 0 ]-> weapon
, "Ancient Curse" );
1042 monsters
[ 4 ][ 0 ]-> strength
= 120 ;
1043 monsters
[ 4 ][ 0 ]-> gold
= 1000 ;
1044 monsters
[ 4 ][ 0 ]-> exp
= 100 ;
1045 monsters
[ 4 ][ 0 ]-> maxhp
= 80 ;
1046 strcpy ( monsters
[ 4 ][ 0 ]-> death
, "You look in awe at the great wonder, collapsed at your feet!" );
1048 strcpy ( monsters
[ 4 ][ 1 ]-> name
, "Giant Ogre" );
1049 strcpy ( monsters
[ 4 ][ 1 ]-> weapon
, "Big Log" );
1050 monsters
[ 4 ][ 1 ]-> strength
= 130 ;
1051 monsters
[ 4 ][ 1 ]-> gold
= 857 ;
1052 monsters
[ 4 ][ 1 ]-> exp
= 175 ;
1053 monsters
[ 4 ][ 1 ]-> maxhp
= 100 ;
1054 strcpy ( monsters
[ 4 ][ 1 ]-> death
, "Your wits outmatched the ogre's brawn... big dumb thing." );
1056 strcpy ( monsters
[ 4 ][ 2 ]-> name
, "Massive Cockroach" );
1057 strcpy ( monsters
[ 4 ][ 2 ]-> weapon
, "Piercing Hiss" );
1058 monsters
[ 4 ][ 2 ]-> strength
= 125 ;
1059 monsters
[ 4 ][ 2 ]-> gold
= 700 ;
1060 monsters
[ 4 ][ 2 ]-> exp
= 150 ;
1061 monsters
[ 4 ][ 2 ]-> maxhp
= 112 ;
1062 strcpy ( monsters
[ 4 ][ 2 ]-> death
, "Where's the exterminator when you need one?" );
1064 strcpy ( monsters
[ 4 ][ 3 ]-> name
, "Big Venomous Snake" );
1065 strcpy ( monsters
[ 4 ][ 3 ]-> weapon
, "Poison Fangs" );
1066 monsters
[ 4 ][ 3 ]-> strength
= 140 ;
1067 monsters
[ 4 ][ 3 ]-> gold
= 900 ;
1068 monsters
[ 4 ][ 3 ]-> exp
= 175 ;
1069 monsters
[ 4 ][ 3 ]-> maxhp
= 126 ;
1070 strcpy ( monsters
[ 4 ][ 3 ]-> death
, "After killing this beast you check for puncture marks... you find none, luckily." );
1072 strcpy ( monsters
[ 4 ][ 4 ]-> name
, "Lizard Man" );
1073 strcpy ( monsters
[ 4 ][ 4 ]-> weapon
, "Deadly Jaws" );
1074 monsters
[ 4 ][ 4 ]-> strength
= 145 ;
1075 monsters
[ 4 ][ 4 ]-> gold
= 1250 ;
1076 monsters
[ 4 ][ 4 ]-> exp
= 175 ;
1077 monsters
[ 4 ][ 4 ]-> maxhp
= 150 ;
1078 strcpy ( monsters
[ 4 ][ 4 ]-> death
, "His scales made for tough armor, and his jaws for a tougher opponent!" );
1080 strcpy ( monsters
[ 4 ][ 5 ]-> name
, "Face Dancer" );
1081 strcpy ( monsters
[ 4 ][ 5 ]-> weapon
, "Illusion Scyth" );
1082 monsters
[ 4 ][ 5 ]-> strength
= 138 ;
1083 monsters
[ 4 ][ 5 ]-> gold
= 1603 ;
1084 monsters
[ 4 ][ 5 ]-> exp
= 198 ;
1085 monsters
[ 4 ][ 5 ]-> maxhp
= 173 ;
1086 strcpy ( monsters
[ 4 ][ 5 ]-> death
, "His carcus takes the shape of many things before it dies. His true form is so repulsive, you know why he changed faces so much!" );
1088 strcpy ( monsters
[ 4 ][ 6 ]-> name
, "Darklord Longbow Archer" );
1089 strcpy ( monsters
[ 4 ][ 6 ]-> weapon
, "Deadly Bow and Arrows" );
1090 monsters
[ 4 ][ 6 ]-> strength
= 145 ;
1091 monsters
[ 4 ][ 6 ]-> gold
= 1569 ;
1092 monsters
[ 4 ][ 6 ]-> exp
= 243 ;
1093 monsters
[ 4 ][ 6 ]-> maxhp
= 170 ;
1094 strcpy ( monsters
[ 4 ][ 6 ]-> death
, "Your face turns white with horror after you realize you just met the devil's protector!" );
1096 strcpy ( monsters
[ 4 ][ 7 ]-> name
, "Hell's Paladin" );
1097 strcpy ( monsters
[ 4 ][ 7 ]-> weapon
, "Sword of Hellfire" );
1098 monsters
[ 4 ][ 7 ]-> strength
= 200 ;
1099 monsters
[ 4 ][ 7 ]-> gold
= 2191 ;
1100 monsters
[ 4 ][ 7 ]-> exp
= 254 ;
1101 monsters
[ 4 ][ 7 ]-> maxhp
= 175 ;
1102 strcpy ( monsters
[ 4 ][ 7 ]-> death
, "This is starting to get tough you think. Do you really want to go to level 6?" );
1104 strcpy ( monsters
[ 4 ][ 8 ]-> name
, "The Unknown Soldier" );
1105 strcpy ( monsters
[ 4 ][ 8 ]-> weapon
, "Soul Torture" );
1106 monsters
[ 4 ][ 8 ]-> strength
= 175 ;
1107 monsters
[ 4 ][ 8 ]-> gold
= 1890 ;
1108 monsters
[ 4 ][ 8 ]-> exp
= 200 ;
1109 monsters
[ 4 ][ 8 ]-> maxhp
= 180 ;
1110 strcpy ( monsters
[ 4 ][ 8 ]-> death
, "Who was that? Where was he from? And what was that weapon??" );
1112 strcpy ( monsters
[ 4 ][ 9 ]-> name
, "Undead Cult Leader" );
1113 strcpy ( monsters
[ 4 ][ 9 ]-> weapon
, "Lance of Deceit" );
1114 monsters
[ 4 ][ 9 ]-> strength
= 180 ;
1115 monsters
[ 4 ][ 9 ]-> gold
= 1792 ;
1116 monsters
[ 4 ][ 9 ]-> exp
= 195 ;
1117 monsters
[ 4 ][ 9 ]-> maxhp
= 190 ;
1118 strcpy ( monsters
[ 4 ][ 9 ]-> death
, "His words fall on deaf ears... this is one cult you will NOT be part of!" );
1120 strcpy ( monsters
[ 4 ][ 10 ]-> name
, "Water Serpent" );
1121 strcpy ( monsters
[ 4 ][ 10 ]-> weapon
, "Forked Tongue" );
1122 monsters
[ 4 ][ 10 ]-> strength
= 150 ;
1123 monsters
[ 4 ][ 10 ]-> gold
= 1500 ;
1124 monsters
[ 4 ][ 10 ]-> exp
= 176 ;
1125 monsters
[ 4 ][ 10 ]-> maxhp
= 220 ;
1126 strcpy ( monsters
[ 4 ][ 10 ]-> death
, "The serpent squeals as you cut off its head!" );
1128 strcpy ( monsters
[ 4 ][ 11 ]-> name
, "Silverback Gorilla" );
1129 strcpy ( monsters
[ 4 ][ 11 ]-> weapon
, "Deadly Banana Peel" );
1130 monsters
[ 4 ][ 11 ]-> strength
= 160 ;
1131 monsters
[ 4 ][ 11 ]-> gold
= 1300 ;
1132 monsters
[ 4 ][ 11 ]-> exp
= 150 ;
1133 monsters
[ 4 ][ 11 ]-> maxhp
= 178 ;
1134 strcpy ( monsters
[ 4 ][ 11 ]-> death
, "Was that gorilla or guerilla?" );
1136 strcpy ( monsters
[ 5 ][ 0 ]-> name
, "" );
1137 strcpy ( monsters
[ 5 ][ 0 ]-> weapon
, "" );
1138 monsters
[ 5 ][ 0 ]-> strength
= 200 ;
1139 monsters
[ 5 ][ 0 ]-> gold
= 2500 ;
1140 monsters
[ 5 ][ 0 ]-> exp
= 200 ;
1141 monsters
[ 5 ][ 0 ]-> maxhp
= 200 ;
1142 strcpy ( monsters
[ 5 ][ 0 ]-> death
, "" );
1144 strcpy ( monsters
[ 5 ][ 1 ]-> name
, "" );
1145 strcpy ( monsters
[ 5 ][ 1 ]-> weapon
, "" );
1146 monsters
[ 5 ][ 1 ]-> strength
= 230 ;
1147 monsters
[ 5 ][ 1 ]-> gold
= 3215 ;
1148 monsters
[ 5 ][ 1 ]-> exp
= 230 ;
1149 monsters
[ 5 ][ 1 ]-> maxhp
= 210 ;
1150 strcpy ( monsters
[ 5 ][ 1 ]-> death
, "" );
1152 strcpy ( monsters
[ 5 ][ 2 ]-> name
, "" );
1153 strcpy ( monsters
[ 5 ][ 2 ]-> weapon
, "" );
1154 monsters
[ 5 ][ 2 ]-> strength
= 215 ;
1155 monsters
[ 5 ][ 2 ]-> gold
= 2750 ;
1156 monsters
[ 5 ][ 2 ]-> exp
= 245 ;
1157 monsters
[ 5 ][ 2 ]-> maxhp
= 214 ;
1158 strcpy ( monsters
[ 5 ][ 2 ]-> death
, "" );
1160 strcpy ( monsters
[ 5 ][ 3 ]-> name
, "Cheap Bastard" );
1161 strcpy ( monsters
[ 5 ][ 3 ]-> weapon
, "Sack of Pennies" );
1162 monsters
[ 5 ][ 3 ]-> strength
= 245 ;
1163 monsters
[ 5 ][ 3 ]-> gold
= 1000 ;
1164 monsters
[ 5 ][ 3 ]-> exp
= 195 ;
1165 monsters
[ 5 ][ 3 ]-> maxhp
= 200 ;
1166 strcpy ( monsters
[ 5 ][ 3 ]-> death
, "You hear him scream, \" MY COINS!! \" as you run off with his sack." );
1168 strcpy ( monsters
[ 5 ][ 4 ]-> name
, "" );
1169 strcpy ( monsters
[ 5 ][ 4 ]-> weapon
, "" );
1170 monsters
[ 5 ][ 4 ]-> strength
= 300 ;
1171 monsters
[ 5 ][ 4 ]-> gold
= 4500 ;
1172 monsters
[ 5 ][ 4 ]-> exp
= 375 ;
1173 monsters
[ 5 ][ 4 ]-> maxhp
= 221 ;
1174 strcpy ( monsters
[ 5 ][ 4 ]-> death
, "" );
1176 strcpy ( monsters
[ 5 ][ 5 ]-> name
, "" );
1177 strcpy ( monsters
[ 5 ][ 5 ]-> weapon
, "" );
1178 monsters
[ 5 ][ 5 ]-> strength
= 1 ;
1179 monsters
[ 5 ][ 5 ]-> gold
= 1 ;
1180 monsters
[ 5 ][ 5 ]-> exp
= 1 ;
1181 monsters
[ 5 ][ 5 ]-> maxhp
= 1 ;
1182 strcpy ( monsters
[ 5 ][ 5 ]-> death
, "" );
1184 strcpy ( monsters
[ 5 ][ 6 ]-> name
, "" );
1185 strcpy ( monsters
[ 5 ][ 6 ]-> weapon
, "" );
1186 monsters
[ 5 ][ 6 ]-> strength
= 1 ;
1187 monsters
[ 5 ][ 6 ]-> gold
= 1 ;
1188 monsters
[ 5 ][ 6 ]-> exp
= 1 ;
1189 monsters
[ 5 ][ 6 ]-> maxhp
= 1 ;
1190 strcpy ( monsters
[ 5 ][ 6 ]-> death
, "" );
1192 strcpy ( monsters
[ 5 ][ 7 ]-> name
, "" );
1193 strcpy ( monsters
[ 5 ][ 7 ]-> weapon
, "" );
1194 monsters
[ 5 ][ 7 ]-> strength
= 1 ;
1195 monsters
[ 5 ][ 7 ]-> gold
= 1 ;
1196 monsters
[ 5 ][ 7 ]-> exp
= 1 ;
1197 monsters
[ 5 ][ 7 ]-> maxhp
= 1 ;
1198 strcpy ( monsters
[ 5 ][ 7 ]-> death
, "" );
1200 strcpy ( monsters
[ 5 ][ 8 ]-> name
, "" );
1201 strcpy ( monsters
[ 5 ][ 8 ]-> weapon
, "" );
1202 monsters
[ 5 ][ 8 ]-> strength
= 1 ;
1203 monsters
[ 5 ][ 8 ]-> gold
= 1 ;
1204 monsters
[ 5 ][ 8 ]-> exp
= 1 ;
1205 monsters
[ 5 ][ 8 ]-> maxhp
= 1 ;
1206 strcpy ( monsters
[ 5 ][ 8 ]-> death
, "" );
1208 strcpy ( monsters
[ 5 ][ 9 ]-> name
, "" );
1209 strcpy ( monsters
[ 5 ][ 9 ]-> weapon
, "" );
1210 monsters
[ 5 ][ 9 ]-> strength
= 1 ;
1211 monsters
[ 5 ][ 9 ]-> gold
= 1 ;
1212 monsters
[ 5 ][ 9 ]-> exp
= 1 ;
1213 monsters
[ 5 ][ 9 ]-> maxhp
= 1 ;
1214 strcpy ( monsters
[ 5 ][ 9 ]-> death
, "" );
1216 strcpy ( monsters
[ 5 ][ 10 ]-> name
, "" );
1217 strcpy ( monsters
[ 5 ][ 10 ]-> weapon
, "" );
1218 monsters
[ 5 ][ 10 ]-> strength
= 1 ;
1219 monsters
[ 5 ][ 10 ]-> gold
= 1 ;
1220 monsters
[ 5 ][ 10 ]-> exp
= 1 ;
1221 monsters
[ 5 ][ 10 ]-> maxhp
= 1 ;
1222 strcpy ( monsters
[ 5 ][ 10 ]-> death
, "" );
1224 strcpy ( monsters
[ 5 ][ 11 ]-> name
, "" );
1225 strcpy ( monsters
[ 5 ][ 11 ]-> weapon
, "" );
1226 monsters
[ 5 ][ 11 ]-> strength
= 1 ;
1227 monsters
[ 5 ][ 11 ]-> gold
= 1 ;
1228 monsters
[ 5 ][ 11 ]-> exp
= 1 ;
1229 monsters
[ 5 ][ 11 ]-> maxhp
= 1 ;
1230 strcpy ( monsters
[ 5 ][ 11 ]-> death
, "" );
1232 strcpy ( monsters
[ 6 ][ 0 ]-> name
, "" );
1233 strcpy ( monsters
[ 6 ][ 0 ]-> weapon
, "" );
1234 monsters
[ 6 ][ 0 ]-> strength
= 1 ;
1235 monsters
[ 6 ][ 0 ]-> gold
= 1 ;
1236 monsters
[ 6 ][ 0 ]-> exp
= 1 ;
1237 monsters
[ 6 ][ 0 ]-> maxhp
= 1 ;
1238 strcpy ( monsters
[ 6 ][ 0 ]-> death
, "" );
1240 strcpy ( monsters
[ 6 ][ 1 ]-> name
, "" );
1241 strcpy ( monsters
[ 6 ][ 1 ]-> weapon
, "" );
1242 monsters
[ 6 ][ 1 ]-> strength
= 1 ;
1243 monsters
[ 6 ][ 1 ]-> gold
= 1 ;
1244 monsters
[ 6 ][ 1 ]-> exp
= 1 ;
1245 monsters
[ 6 ][ 1 ]-> maxhp
= 1 ;
1246 strcpy ( monsters
[ 6 ][ 1 ]-> death
, "" );
1248 strcpy ( monsters
[ 6 ][ 2 ]-> name
, "" );
1249 strcpy ( monsters
[ 6 ][ 2 ]-> weapon
, "" );
1250 monsters
[ 6 ][ 2 ]-> strength
= 1 ;
1251 monsters
[ 6 ][ 2 ]-> gold
= 1 ;
1252 monsters
[ 6 ][ 2 ]-> exp
= 1 ;
1253 monsters
[ 6 ][ 2 ]-> maxhp
= 1 ;
1254 strcpy ( monsters
[ 6 ][ 2 ]-> death
, "" );
1256 strcpy ( monsters
[ 6 ][ 3 ]-> name
, "" );
1257 strcpy ( monsters
[ 6 ][ 3 ]-> weapon
, "" );
1258 monsters
[ 6 ][ 3 ]-> strength
= 1 ;
1259 monsters
[ 6 ][ 3 ]-> gold
= 1 ;
1260 monsters
[ 6 ][ 3 ]-> exp
= 1 ;
1261 monsters
[ 6 ][ 3 ]-> maxhp
= 1 ;
1262 strcpy ( monsters
[ 6 ][ 3 ]-> death
, "" );
1264 strcpy ( monsters
[ 6 ][ 4 ]-> name
, "" );
1265 strcpy ( monsters
[ 6 ][ 4 ]-> weapon
, "" );
1266 monsters
[ 6 ][ 4 ]-> strength
= 1 ;
1267 monsters
[ 6 ][ 4 ]-> gold
= 1 ;
1268 monsters
[ 6 ][ 4 ]-> exp
= 1 ;
1269 monsters
[ 6 ][ 4 ]-> maxhp
= 1 ;
1270 strcpy ( monsters
[ 6 ][ 4 ]-> death
, "" );
1272 strcpy ( monsters
[ 6 ][ 5 ]-> name
, "" );
1273 strcpy ( monsters
[ 6 ][ 5 ]-> weapon
, "" );
1274 monsters
[ 6 ][ 5 ]-> strength
= 1 ;
1275 monsters
[ 6 ][ 5 ]-> gold
= 1 ;
1276 monsters
[ 6 ][ 5 ]-> exp
= 1 ;
1277 monsters
[ 6 ][ 5 ]-> maxhp
= 1 ;
1278 strcpy ( monsters
[ 6 ][ 5 ]-> death
, "" );
1280 strcpy ( monsters
[ 6 ][ 6 ]-> name
, "" );
1281 strcpy ( monsters
[ 6 ][ 6 ]-> weapon
, "" );
1282 monsters
[ 6 ][ 6 ]-> strength
= 1 ;
1283 monsters
[ 6 ][ 6 ]-> gold
= 1 ;
1284 monsters
[ 6 ][ 6 ]-> exp
= 1 ;
1285 monsters
[ 6 ][ 6 ]-> maxhp
= 1 ;
1286 strcpy ( monsters
[ 6 ][ 6 ]-> death
, "" );
1288 strcpy ( monsters
[ 6 ][ 7 ]-> name
, "" );
1289 strcpy ( monsters
[ 6 ][ 7 ]-> weapon
, "" );
1290 monsters
[ 6 ][ 7 ]-> strength
= 1 ;
1291 monsters
[ 6 ][ 7 ]-> gold
= 1 ;
1292 monsters
[ 6 ][ 7 ]-> exp
= 1 ;
1293 monsters
[ 6 ][ 7 ]-> maxhp
= 1 ;
1294 strcpy ( monsters
[ 6 ][ 7 ]-> death
, "" );
1296 strcpy ( monsters
[ 6 ][ 8 ]-> name
, "" );
1297 strcpy ( monsters
[ 6 ][ 8 ]-> weapon
, "" );
1298 monsters
[ 6 ][ 8 ]-> strength
= 1 ;
1299 monsters
[ 6 ][ 8 ]-> gold
= 1 ;
1300 monsters
[ 6 ][ 8 ]-> exp
= 1 ;
1301 monsters
[ 6 ][ 8 ]-> maxhp
= 1 ;
1302 strcpy ( monsters
[ 6 ][ 8 ]-> death
, "" );
1304 strcpy ( monsters
[ 6 ][ 9 ]-> name
, "" );
1305 strcpy ( monsters
[ 6 ][ 9 ]-> weapon
, "" );
1306 monsters
[ 6 ][ 9 ]-> strength
= 1 ;
1307 monsters
[ 6 ][ 9 ]-> gold
= 1 ;
1308 monsters
[ 6 ][ 9 ]-> exp
= 1 ;
1309 monsters
[ 6 ][ 9 ]-> maxhp
= 1 ;
1310 strcpy ( monsters
[ 6 ][ 9 ]-> death
, "" );
1312 strcpy ( monsters
[ 6 ][ 10 ]-> name
, "" );
1313 strcpy ( monsters
[ 6 ][ 10 ]-> weapon
, "" );
1314 monsters
[ 6 ][ 10 ]-> strength
= 1 ;
1315 monsters
[ 6 ][ 10 ]-> gold
= 1 ;
1316 monsters
[ 6 ][ 10 ]-> exp
= 1 ;
1317 monsters
[ 6 ][ 10 ]-> maxhp
= 1 ;
1318 strcpy ( monsters
[ 6 ][ 10 ]-> death
, "" );
1320 strcpy ( monsters
[ 6 ][ 11 ]-> name
, "" );
1321 strcpy ( monsters
[ 6 ][ 11 ]-> weapon
, "" );
1322 monsters
[ 6 ][ 11 ]-> strength
= 1 ;
1323 monsters
[ 6 ][ 11 ]-> gold
= 1 ;
1324 monsters
[ 6 ][ 11 ]-> exp
= 1 ;
1325 monsters
[ 6 ][ 11 ]-> maxhp
= 1 ;
1326 strcpy ( monsters
[ 6 ][ 11 ]-> death
, "" );
1328 strcpy ( monsters
[ 7 ][ 0 ]-> name
, "" );
1329 strcpy ( monsters
[ 7 ][ 0 ]-> weapon
, "" );
1330 monsters
[ 7 ][ 0 ]-> strength
= 1 ;
1331 monsters
[ 7 ][ 0 ]-> gold
= 1 ;
1332 monsters
[ 7 ][ 0 ]-> exp
= 1 ;
1333 monsters
[ 7 ][ 0 ]-> maxhp
= 1 ;
1334 strcpy ( monsters
[ 7 ][ 0 ]-> death
, "" );
1336 strcpy ( monsters
[ 7 ][ 1 ]-> name
, "" );
1337 strcpy ( monsters
[ 7 ][ 1 ]-> weapon
, "" );
1338 monsters
[ 7 ][ 1 ]-> strength
= 1 ;
1339 monsters
[ 7 ][ 1 ]-> gold
= 1 ;
1340 monsters
[ 7 ][ 1 ]-> exp
= 1 ;
1341 monsters
[ 7 ][ 1 ]-> maxhp
= 1 ;
1342 strcpy ( monsters
[ 7 ][ 1 ]-> death
, "" );
1344 strcpy ( monsters
[ 7 ][ 2 ]-> name
, "" );
1345 strcpy ( monsters
[ 7 ][ 2 ]-> weapon
, "" );
1346 monsters
[ 7 ][ 2 ]-> strength
= 1 ;
1347 monsters
[ 7 ][ 2 ]-> gold
= 1 ;
1348 monsters
[ 7 ][ 2 ]-> exp
= 1 ;
1349 monsters
[ 7 ][ 2 ]-> maxhp
= 1 ;
1350 strcpy ( monsters
[ 7 ][ 2 ]-> death
, "" );
1352 strcpy ( monsters
[ 7 ][ 3 ]-> name
, "" );
1353 strcpy ( monsters
[ 7 ][ 3 ]-> weapon
, "" );
1354 monsters
[ 7 ][ 3 ]-> strength
= 1 ;
1355 monsters
[ 7 ][ 3 ]-> gold
= 1 ;
1356 monsters
[ 7 ][ 3 ]-> exp
= 1 ;
1357 monsters
[ 7 ][ 3 ]-> maxhp
= 1 ;
1358 strcpy ( monsters
[ 7 ][ 3 ]-> death
, "" );
1360 strcpy ( monsters
[ 7 ][ 4 ]-> name
, "" );
1361 strcpy ( monsters
[ 7 ][ 4 ]-> weapon
, "" );
1362 monsters
[ 7 ][ 4 ]-> strength
= 1 ;
1363 monsters
[ 7 ][ 4 ]-> gold
= 1 ;
1364 monsters
[ 7 ][ 4 ]-> exp
= 1 ;
1365 monsters
[ 7 ][ 4 ]-> maxhp
= 1 ;
1366 strcpy ( monsters
[ 7 ][ 4 ]-> death
, "" );
1368 strcpy ( monsters
[ 7 ][ 5 ]-> name
, "" );
1369 strcpy ( monsters
[ 7 ][ 5 ]-> weapon
, "" );
1370 monsters
[ 7 ][ 5 ]-> strength
= 1 ;
1371 monsters
[ 7 ][ 5 ]-> gold
= 1 ;
1372 monsters
[ 7 ][ 5 ]-> exp
= 1 ;
1373 monsters
[ 7 ][ 5 ]-> maxhp
= 1 ;
1374 strcpy ( monsters
[ 7 ][ 5 ]-> death
, "" );
1376 strcpy ( monsters
[ 7 ][ 6 ]-> name
, "" );
1377 strcpy ( monsters
[ 7 ][ 6 ]-> weapon
, "" );
1378 monsters
[ 7 ][ 6 ]-> strength
= 1 ;
1379 monsters
[ 7 ][ 6 ]-> gold
= 1 ;
1380 monsters
[ 7 ][ 6 ]-> exp
= 1 ;
1381 monsters
[ 7 ][ 6 ]-> maxhp
= 1 ;
1382 strcpy ( monsters
[ 7 ][ 6 ]-> death
, "" );
1384 strcpy ( monsters
[ 7 ][ 7 ]-> name
, "" );
1385 strcpy ( monsters
[ 7 ][ 7 ]-> weapon
, "" );
1386 monsters
[ 7 ][ 7 ]-> strength
= 1 ;
1387 monsters
[ 7 ][ 7 ]-> gold
= 1 ;
1388 monsters
[ 7 ][ 7 ]-> exp
= 1 ;
1389 monsters
[ 7 ][ 7 ]-> maxhp
= 1 ;
1390 strcpy ( monsters
[ 7 ][ 7 ]-> death
, "" );
1392 strcpy ( monsters
[ 7 ][ 8 ]-> name
, "" );
1393 strcpy ( monsters
[ 7 ][ 8 ]-> weapon
, "" );
1394 monsters
[ 7 ][ 8 ]-> strength
= 1 ;
1395 monsters
[ 7 ][ 8 ]-> gold
= 1 ;
1396 monsters
[ 7 ][ 8 ]-> exp
= 1 ;
1397 monsters
[ 7 ][ 8 ]-> maxhp
= 1 ;
1398 strcpy ( monsters
[ 7 ][ 8 ]-> death
, "" );
1400 strcpy ( monsters
[ 7 ][ 9 ]-> name
, "" );
1401 strcpy ( monsters
[ 7 ][ 9 ]-> weapon
, "" );
1402 monsters
[ 7 ][ 9 ]-> strength
= 1 ;
1403 monsters
[ 7 ][ 9 ]-> gold
= 1 ;
1404 monsters
[ 7 ][ 9 ]-> exp
= 1 ;
1405 monsters
[ 7 ][ 9 ]-> maxhp
= 1 ;
1406 strcpy ( monsters
[ 7 ][ 9 ]-> death
, "" );
1408 strcpy ( monsters
[ 7 ][ 10 ]-> name
, "" );
1409 strcpy ( monsters
[ 7 ][ 10 ]-> weapon
, "" );
1410 monsters
[ 7 ][ 10 ]-> strength
= 1 ;
1411 monsters
[ 7 ][ 10 ]-> gold
= 1 ;
1412 monsters
[ 7 ][ 10 ]-> exp
= 1 ;
1413 monsters
[ 7 ][ 10 ]-> maxhp
= 1 ;
1414 strcpy ( monsters
[ 7 ][ 10 ]-> death
, "" );
1416 strcpy ( monsters
[ 7 ][ 11 ]-> name
, "" );
1417 strcpy ( monsters
[ 7 ][ 11 ]-> weapon
, "" );
1418 monsters
[ 7 ][ 11 ]-> strength
= 1 ;
1419 monsters
[ 7 ][ 11 ]-> gold
= 1 ;
1420 monsters
[ 7 ][ 11 ]-> exp
= 1 ;
1421 monsters
[ 7 ][ 11 ]-> maxhp
= 1 ;
1422 strcpy ( monsters
[ 7 ][ 11 ]-> death
, "" );
1424 strcpy ( monsters
[ 8 ][ 0 ]-> name
, "" );
1425 strcpy ( monsters
[ 8 ][ 0 ]-> weapon
, "" );
1426 monsters
[ 8 ][ 0 ]-> strength
= 1 ;
1427 monsters
[ 8 ][ 0 ]-> gold
= 1 ;
1428 monsters
[ 8 ][ 0 ]-> exp
= 1 ;
1429 monsters
[ 8 ][ 0 ]-> maxhp
= 1 ;
1430 strcpy ( monsters
[ 8 ][ 0 ]-> death
, "" );
1432 strcpy ( monsters
[ 8 ][ 1 ]-> name
, "" );
1433 strcpy ( monsters
[ 8 ][ 1 ]-> weapon
, "" );
1434 monsters
[ 8 ][ 1 ]-> strength
= 1 ;
1435 monsters
[ 8 ][ 1 ]-> gold
= 1 ;
1436 monsters
[ 8 ][ 1 ]-> exp
= 1 ;
1437 monsters
[ 8 ][ 1 ]-> maxhp
= 1 ;
1438 strcpy ( monsters
[ 8 ][ 1 ]-> death
, "" );
1440 strcpy ( monsters
[ 8 ][ 2 ]-> name
, "" );
1441 strcpy ( monsters
[ 8 ][ 2 ]-> weapon
, "" );
1442 monsters
[ 8 ][ 2 ]-> strength
= 1 ;
1443 monsters
[ 8 ][ 2 ]-> gold
= 1 ;
1444 monsters
[ 8 ][ 2 ]-> exp
= 1 ;
1445 monsters
[ 8 ][ 2 ]-> maxhp
= 1 ;
1446 strcpy ( monsters
[ 8 ][ 2 ]-> death
, "" );
1448 strcpy ( monsters
[ 8 ][ 3 ]-> name
, "" );
1449 strcpy ( monsters
[ 8 ][ 3 ]-> weapon
, "" );
1450 monsters
[ 8 ][ 3 ]-> strength
= 1 ;
1451 monsters
[ 8 ][ 3 ]-> gold
= 1 ;
1452 monsters
[ 8 ][ 3 ]-> exp
= 1 ;
1453 monsters
[ 8 ][ 3 ]-> maxhp
= 1 ;
1454 strcpy ( monsters
[ 8 ][ 3 ]-> death
, "" );
1456 strcpy ( monsters
[ 8 ][ 4 ]-> name
, "" );
1457 strcpy ( monsters
[ 8 ][ 4 ]-> weapon
, "" );
1458 monsters
[ 8 ][ 4 ]-> strength
= 1 ;
1459 monsters
[ 8 ][ 4 ]-> gold
= 1 ;
1460 monsters
[ 8 ][ 4 ]-> exp
= 1 ;
1461 monsters
[ 8 ][ 4 ]-> maxhp
= 1 ;
1462 strcpy ( monsters
[ 8 ][ 4 ]-> death
, "" );
1464 strcpy ( monsters
[ 8 ][ 5 ]-> name
, "" );
1465 strcpy ( monsters
[ 8 ][ 5 ]-> weapon
, "" );
1466 monsters
[ 8 ][ 5 ]-> strength
= 1 ;
1467 monsters
[ 8 ][ 5 ]-> gold
= 1 ;
1468 monsters
[ 8 ][ 5 ]-> exp
= 1 ;
1469 monsters
[ 8 ][ 5 ]-> maxhp
= 1 ;
1470 strcpy ( monsters
[ 8 ][ 5 ]-> death
, "" );
1472 strcpy ( monsters
[ 8 ][ 6 ]-> name
, "" );
1473 strcpy ( monsters
[ 8 ][ 6 ]-> weapon
, "" );
1474 monsters
[ 8 ][ 6 ]-> strength
= 1 ;
1475 monsters
[ 8 ][ 6 ]-> gold
= 1 ;
1476 monsters
[ 8 ][ 6 ]-> exp
= 1 ;
1477 monsters
[ 8 ][ 6 ]-> maxhp
= 1 ;
1478 strcpy ( monsters
[ 8 ][ 6 ]-> death
, "" );
1480 strcpy ( monsters
[ 8 ][ 7 ]-> name
, "" );
1481 strcpy ( monsters
[ 8 ][ 7 ]-> weapon
, "" );
1482 monsters
[ 8 ][ 7 ]-> strength
= 1 ;
1483 monsters
[ 8 ][ 7 ]-> gold
= 1 ;
1484 monsters
[ 8 ][ 7 ]-> exp
= 1 ;
1485 monsters
[ 8 ][ 7 ]-> maxhp
= 1 ;
1486 strcpy ( monsters
[ 8 ][ 7 ]-> death
, "" );
1488 strcpy ( monsters
[ 8 ][ 8 ]-> name
, "" );
1489 strcpy ( monsters
[ 8 ][ 8 ]-> weapon
, "" );
1490 monsters
[ 8 ][ 8 ]-> strength
= 1 ;
1491 monsters
[ 8 ][ 8 ]-> gold
= 1 ;
1492 monsters
[ 8 ][ 8 ]-> exp
= 1 ;
1493 monsters
[ 8 ][ 8 ]-> maxhp
= 1 ;
1494 strcpy ( monsters
[ 8 ][ 8 ]-> death
, "" );
1496 strcpy ( monsters
[ 8 ][ 9 ]-> name
, "" );
1497 strcpy ( monsters
[ 8 ][ 9 ]-> weapon
, "" );
1498 monsters
[ 8 ][ 9 ]-> strength
= 1 ;
1499 monsters
[ 8 ][ 9 ]-> gold
= 1 ;
1500 monsters
[ 8 ][ 9 ]-> exp
= 1 ;
1501 monsters
[ 8 ][ 9 ]-> maxhp
= 1 ;
1502 strcpy ( monsters
[ 8 ][ 9 ]-> death
, "" );
1504 strcpy ( monsters
[ 8 ][ 10 ]-> name
, "" );
1505 strcpy ( monsters
[ 8 ][ 10 ]-> weapon
, "" );
1506 monsters
[ 8 ][ 10 ]-> strength
= 1 ;
1507 monsters
[ 8 ][ 10 ]-> gold
= 1 ;
1508 monsters
[ 8 ][ 10 ]-> exp
= 1 ;
1509 monsters
[ 8 ][ 10 ]-> maxhp
= 1 ;
1510 strcpy ( monsters
[ 8 ][ 10 ]-> death
, "" );
1512 strcpy ( monsters
[ 8 ][ 11 ]-> name
, "" );
1513 strcpy ( monsters
[ 8 ][ 11 ]-> weapon
, "" );
1514 monsters
[ 8 ][ 11 ]-> strength
= 1 ;
1515 monsters
[ 8 ][ 11 ]-> gold
= 1 ;
1516 monsters
[ 8 ][ 11 ]-> exp
= 1 ;
1517 monsters
[ 8 ][ 11 ]-> maxhp
= 1 ;
1518 strcpy ( monsters
[ 8 ][ 11 ]-> death
, "" );
1520 strcpy ( monsters
[ 9 ][ 0 ]-> name
, "" );
1521 strcpy ( monsters
[ 9 ][ 0 ]-> weapon
, "" );
1522 monsters
[ 9 ][ 0 ]-> strength
= 1 ;
1523 monsters
[ 9 ][ 0 ]-> gold
= 1 ;
1524 monsters
[ 9 ][ 0 ]-> exp
= 1 ;
1525 monsters
[ 9 ][ 0 ]-> maxhp
= 1 ;
1526 strcpy ( monsters
[ 9 ][ 0 ]-> death
, "" );
1528 strcpy ( monsters
[ 9 ][ 1 ]-> name
, "" );
1529 strcpy ( monsters
[ 9 ][ 1 ]-> weapon
, "" );
1530 monsters
[ 9 ][ 1 ]-> strength
= 1 ;
1531 monsters
[ 9 ][ 1 ]-> gold
= 1 ;
1532 monsters
[ 9 ][ 1 ]-> exp
= 1 ;
1533 monsters
[ 9 ][ 1 ]-> maxhp
= 1 ;
1534 strcpy ( monsters
[ 9 ][ 1 ]-> death
, "" );
1536 strcpy ( monsters
[ 9 ][ 2 ]-> name
, "" );
1537 strcpy ( monsters
[ 9 ][ 2 ]-> weapon
, "" );
1538 monsters
[ 9 ][ 2 ]-> strength
= 1 ;
1539 monsters
[ 9 ][ 2 ]-> gold
= 1 ;
1540 monsters
[ 9 ][ 2 ]-> exp
= 1 ;
1541 monsters
[ 9 ][ 2 ]-> maxhp
= 1 ;
1542 strcpy ( monsters
[ 9 ][ 2 ]-> death
, "" );
1544 strcpy ( monsters
[ 9 ][ 3 ]-> name
, "" );
1545 strcpy ( monsters
[ 9 ][ 3 ]-> weapon
, "" );
1546 monsters
[ 9 ][ 3 ]-> strength
= 1 ;
1547 monsters
[ 9 ][ 3 ]-> gold
= 1 ;
1548 monsters
[ 9 ][ 3 ]-> exp
= 1 ;
1549 monsters
[ 9 ][ 3 ]-> maxhp
= 1 ;
1550 strcpy ( monsters
[ 9 ][ 3 ]-> death
, "" );
1552 strcpy ( monsters
[ 9 ][ 4 ]-> name
, "" );
1553 strcpy ( monsters
[ 9 ][ 4 ]-> weapon
, "" );
1554 monsters
[ 9 ][ 4 ]-> strength
= 1 ;
1555 monsters
[ 9 ][ 4 ]-> gold
= 1 ;
1556 monsters
[ 9 ][ 4 ]-> exp
= 1 ;
1557 monsters
[ 9 ][ 4 ]-> maxhp
= 1 ;
1558 strcpy ( monsters
[ 9 ][ 4 ]-> death
, "" );
1560 strcpy ( monsters
[ 9 ][ 5 ]-> name
, "" );
1561 strcpy ( monsters
[ 9 ][ 5 ]-> weapon
, "" );
1562 monsters
[ 9 ][ 5 ]-> strength
= 1 ;
1563 monsters
[ 9 ][ 5 ]-> gold
= 1 ;
1564 monsters
[ 9 ][ 5 ]-> exp
= 1 ;
1565 monsters
[ 9 ][ 5 ]-> maxhp
= 1 ;
1566 strcpy ( monsters
[ 9 ][ 5 ]-> death
, "" );
1568 strcpy ( monsters
[ 9 ][ 6 ]-> name
, "" );
1569 strcpy ( monsters
[ 9 ][ 6 ]-> weapon
, "" );
1570 monsters
[ 9 ][ 6 ]-> strength
= 1 ;
1571 monsters
[ 9 ][ 6 ]-> gold
= 1 ;
1572 monsters
[ 9 ][ 6 ]-> exp
= 1 ;
1573 monsters
[ 9 ][ 6 ]-> maxhp
= 1 ;
1574 strcpy ( monsters
[ 9 ][ 6 ]-> death
, "" );
1576 strcpy ( monsters
[ 9 ][ 7 ]-> name
, "" );
1577 strcpy ( monsters
[ 9 ][ 7 ]-> weapon
, "" );
1578 monsters
[ 9 ][ 7 ]-> strength
= 1 ;
1579 monsters
[ 9 ][ 7 ]-> gold
= 1 ;
1580 monsters
[ 9 ][ 7 ]-> exp
= 1 ;
1581 monsters
[ 9 ][ 7 ]-> maxhp
= 1 ;
1582 strcpy ( monsters
[ 9 ][ 7 ]-> death
, "" );
1584 strcpy ( monsters
[ 9 ][ 8 ]-> name
, "" );
1585 strcpy ( monsters
[ 9 ][ 8 ]-> weapon
, "" );
1586 monsters
[ 9 ][ 8 ]-> strength
= 1 ;
1587 monsters
[ 9 ][ 8 ]-> gold
= 1 ;
1588 monsters
[ 9 ][ 8 ]-> exp
= 1 ;
1589 monsters
[ 9 ][ 8 ]-> maxhp
= 1 ;
1590 strcpy ( monsters
[ 9 ][ 8 ]-> death
, "" );
1592 strcpy ( monsters
[ 9 ][ 9 ]-> name
, "" );
1593 strcpy ( monsters
[ 9 ][ 9 ]-> weapon
, "" );
1594 monsters
[ 9 ][ 9 ]-> strength
= 1 ;
1595 monsters
[ 9 ][ 9 ]-> gold
= 1 ;
1596 monsters
[ 9 ][ 9 ]-> exp
= 1 ;
1597 monsters
[ 9 ][ 9 ]-> maxhp
= 1 ;
1598 strcpy ( monsters
[ 9 ][ 9 ]-> death
, "" );
1600 strcpy ( monsters
[ 9 ][ 10 ]-> name
, "" );
1601 strcpy ( monsters
[ 9 ][ 10 ]-> weapon
, "" );
1602 monsters
[ 9 ][ 10 ]-> strength
= 1 ;
1603 monsters
[ 9 ][ 10 ]-> gold
= 1 ;
1604 monsters
[ 9 ][ 10 ]-> exp
= 1 ;
1605 monsters
[ 9 ][ 10 ]-> maxhp
= 1 ;
1606 strcpy ( monsters
[ 9 ][ 10 ]-> death
, "" );
1608 strcpy ( monsters
[ 9 ][ 11 ]-> name
, "" );
1609 strcpy ( monsters
[ 9 ][ 11 ]-> weapon
, "" );
1610 monsters
[ 9 ][ 11 ]-> strength
= 1 ;
1611 monsters
[ 9 ][ 11 ]-> gold
= 1 ;
1612 monsters
[ 9 ][ 11 ]-> exp
= 1 ;
1613 monsters
[ 9 ][ 11 ]-> maxhp
= 1 ;
1614 strcpy ( monsters
[ 9 ][ 11 ]-> death
, "" );
1616 strcpy ( monsters
[ 10 ][ 0 ]-> name
, "" );
1617 strcpy ( monsters
[ 10 ][ 0 ]-> weapon
, "" );
1618 monsters
[ 10 ][ 0 ]-> strength
= 1 ;
1619 monsters
[ 10 ][ 0 ]-> gold
= 1 ;
1620 monsters
[ 10 ][ 0 ]-> exp
= 1 ;
1621 monsters
[ 10 ][ 0 ]-> maxhp
= 1 ;
1622 strcpy ( monsters
[ 10 ][ 0 ]-> death
, "" );
1624 strcpy ( monsters
[ 10 ][ 1 ]-> name
, "" );
1625 strcpy ( monsters
[ 10 ][ 1 ]-> weapon
, "" );
1626 monsters
[ 10 ][ 1 ]-> strength
= 1 ;
1627 monsters
[ 10 ][ 1 ]-> gold
= 1 ;
1628 monsters
[ 10 ][ 1 ]-> exp
= 1 ;
1629 monsters
[ 10 ][ 1 ]-> maxhp
= 1 ;
1630 strcpy ( monsters
[ 10 ][ 1 ]-> death
, "" );
1632 strcpy ( monsters
[ 10 ][ 2 ]-> name
, "" );
1633 strcpy ( monsters
[ 10 ][ 2 ]-> weapon
, "" );
1634 monsters
[ 10 ][ 2 ]-> strength
= 1 ;
1635 monsters
[ 10 ][ 2 ]-> gold
= 1 ;
1636 monsters
[ 10 ][ 2 ]-> exp
= 1 ;
1637 monsters
[ 10 ][ 2 ]-> maxhp
= 1 ;
1638 strcpy ( monsters
[ 10 ][ 2 ]-> death
, "" );
1640 strcpy ( monsters
[ 10 ][ 3 ]-> name
, "" );
1641 strcpy ( monsters
[ 10 ][ 3 ]-> weapon
, "" );
1642 monsters
[ 10 ][ 3 ]-> strength
= 1 ;
1643 monsters
[ 10 ][ 3 ]-> gold
= 1 ;
1644 monsters
[ 10 ][ 3 ]-> exp
= 1 ;
1645 monsters
[ 10 ][ 3 ]-> maxhp
= 1 ;
1646 strcpy ( monsters
[ 10 ][ 3 ]-> death
, "" );
1648 strcpy ( monsters
[ 10 ][ 4 ]-> name
, "" );
1649 strcpy ( monsters
[ 10 ][ 4 ]-> weapon
, "" );
1650 monsters
[ 10 ][ 4 ]-> strength
= 1 ;
1651 monsters
[ 10 ][ 4 ]-> gold
= 1 ;
1652 monsters
[ 10 ][ 4 ]-> exp
= 1 ;
1653 monsters
[ 10 ][ 4 ]-> maxhp
= 1 ;
1654 strcpy ( monsters
[ 10 ][ 4 ]-> death
, "" );
1656 strcpy ( monsters
[ 10 ][ 5 ]-> name
, "" );
1657 strcpy ( monsters
[ 10 ][ 5 ]-> weapon
, "" );
1658 monsters
[ 10 ][ 5 ]-> strength
= 1 ;
1659 monsters
[ 10 ][ 5 ]-> gold
= 1 ;
1660 monsters
[ 10 ][ 5 ]-> exp
= 1 ;
1661 monsters
[ 10 ][ 5 ]-> maxhp
= 1 ;
1662 strcpy ( monsters
[ 10 ][ 5 ]-> death
, "" );
1664 strcpy ( monsters
[ 10 ][ 6 ]-> name
, "" );
1665 strcpy ( monsters
[ 10 ][ 6 ]-> weapon
, "" );
1666 monsters
[ 10 ][ 6 ]-> strength
= 1 ;
1667 monsters
[ 10 ][ 6 ]-> gold
= 1 ;
1668 monsters
[ 10 ][ 6 ]-> exp
= 1 ;
1669 monsters
[ 10 ][ 6 ]-> maxhp
= 1 ;
1670 strcpy ( monsters
[ 10 ][ 6 ]-> death
, "" );
1672 strcpy ( monsters
[ 10 ][ 7 ]-> name
, "" );
1673 strcpy ( monsters
[ 10 ][ 7 ]-> weapon
, "" );
1674 monsters
[ 10 ][ 7 ]-> strength
= 1 ;
1675 monsters
[ 10 ][ 7 ]-> gold
= 1 ;
1676 monsters
[ 10 ][ 7 ]-> exp
= 1 ;
1677 monsters
[ 10 ][ 7 ]-> maxhp
= 1 ;
1678 strcpy ( monsters
[ 10 ][ 7 ]-> death
, "" );
1680 strcpy ( monsters
[ 10 ][ 8 ]-> name
, "" );
1681 strcpy ( monsters
[ 10 ][ 8 ]-> weapon
, "" );
1682 monsters
[ 10 ][ 8 ]-> strength
= 1 ;
1683 monsters
[ 10 ][ 8 ]-> gold
= 1 ;
1684 monsters
[ 10 ][ 8 ]-> exp
= 1 ;
1685 monsters
[ 10 ][ 8 ]-> maxhp
= 1 ;
1686 strcpy ( monsters
[ 10 ][ 8 ]-> death
, "" );
1688 strcpy ( monsters
[ 10 ][ 9 ]-> name
, "" );
1689 strcpy ( monsters
[ 10 ][ 9 ]-> weapon
, "" );
1690 monsters
[ 10 ][ 9 ]-> strength
= 1 ;
1691 monsters
[ 10 ][ 9 ]-> gold
= 1 ;
1692 monsters
[ 10 ][ 9 ]-> exp
= 1 ;
1693 monsters
[ 10 ][ 9 ]-> maxhp
= 1 ;
1694 strcpy ( monsters
[ 10 ][ 9 ]-> death
, "" );
1696 strcpy ( monsters
[ 10 ][ 10 ]-> name
, "" );
1697 strcpy ( monsters
[ 10 ][ 10 ]-> weapon
, "" );
1698 monsters
[ 10 ][ 10 ]-> strength
= 1 ;
1699 monsters
[ 10 ][ 10 ]-> gold
= 1 ;
1700 monsters
[ 10 ][ 10 ]-> exp
= 1 ;
1701 monsters
[ 10 ][ 10 ]-> maxhp
= 1 ;
1702 strcpy ( monsters
[ 10 ][ 10 ]-> death
, "" );
1704 strcpy ( monsters
[ 10 ][ 11 ]-> name
, "" );
1705 strcpy ( monsters
[ 10 ][ 11 ]-> weapon
, "" );
1706 monsters
[ 10 ][ 11 ]-> strength
= 1 ;
1707 monsters
[ 10 ][ 11 ]-> gold
= 1 ;
1708 monsters
[ 10 ][ 11 ]-> exp
= 1 ;
1709 monsters
[ 10 ][ 11 ]-> maxhp
= 1 ;
1710 strcpy ( monsters
[ 10 ][ 11 ]-> death
, "" );
1712 strcpy ( monsters
[ 11 ][ 0 ]-> name
, "" );
1713 strcpy ( monsters
[ 11 ][ 0 ]-> weapon
, "" );
1714 monsters
[ 11 ][ 0 ]-> strength
= 1 ;
1715 monsters
[ 11 ][ 0 ]-> gold
= 1 ;
1716 monsters
[ 11 ][ 0 ]-> exp
= 1 ;
1717 monsters
[ 11 ][ 0 ]-> maxhp
= 1 ;
1718 strcpy ( monsters
[ 11 ][ 0 ]-> death
, "" );
1720 strcpy ( monsters
[ 11 ][ 1 ]-> name
, "" );
1721 strcpy ( monsters
[ 11 ][ 1 ]-> weapon
, "" );
1722 monsters
[ 11 ][ 1 ]-> strength
= 1 ;
1723 monsters
[ 11 ][ 1 ]-> gold
= 1 ;
1724 monsters
[ 11 ][ 1 ]-> exp
= 1 ;
1725 monsters
[ 11 ][ 1 ]-> maxhp
= 1 ;
1726 strcpy ( monsters
[ 11 ][ 1 ]-> death
, "" );
1728 strcpy ( monsters
[ 11 ][ 2 ]-> name
, "" );
1729 strcpy ( monsters
[ 11 ][ 2 ]-> weapon
, "" );
1730 monsters
[ 11 ][ 2 ]-> strength
= 1 ;
1731 monsters
[ 11 ][ 2 ]-> gold
= 1 ;
1732 monsters
[ 11 ][ 2 ]-> exp
= 1 ;
1733 monsters
[ 11 ][ 2 ]-> maxhp
= 1 ;
1734 strcpy ( monsters
[ 11 ][ 2 ]-> death
, "" );
1736 strcpy ( monsters
[ 11 ][ 3 ]-> name
, "" );
1737 strcpy ( monsters
[ 11 ][ 3 ]-> weapon
, "" );
1738 monsters
[ 11 ][ 3 ]-> strength
= 1 ;
1739 monsters
[ 11 ][ 3 ]-> gold
= 1 ;
1740 monsters
[ 11 ][ 3 ]-> exp
= 1 ;
1741 monsters
[ 11 ][ 3 ]-> maxhp
= 1 ;
1742 strcpy ( monsters
[ 11 ][ 3 ]-> death
, "" );
1744 strcpy ( monsters
[ 11 ][ 4 ]-> name
, "" );
1745 strcpy ( monsters
[ 11 ][ 4 ]-> weapon
, "" );
1746 monsters
[ 11 ][ 4 ]-> strength
= 1 ;
1747 monsters
[ 11 ][ 4 ]-> gold
= 1 ;
1748 monsters
[ 11 ][ 4 ]-> exp
= 1 ;
1749 monsters
[ 11 ][ 4 ]-> maxhp
= 1 ;
1750 strcpy ( monsters
[ 11 ][ 4 ]-> death
, "" );
1752 strcpy ( monsters
[ 11 ][ 5 ]-> name
, "" );
1753 strcpy ( monsters
[ 11 ][ 5 ]-> weapon
, "" );
1754 monsters
[ 11 ][ 5 ]-> strength
= 1 ;
1755 monsters
[ 11 ][ 5 ]-> gold
= 1 ;
1756 monsters
[ 11 ][ 5 ]-> exp
= 1 ;
1757 monsters
[ 11 ][ 5 ]-> maxhp
= 1 ;
1758 strcpy ( monsters
[ 11 ][ 5 ]-> death
, "" );
1760 strcpy ( monsters
[ 11 ][ 6 ]-> name
, "" );
1761 strcpy ( monsters
[ 11 ][ 6 ]-> weapon
, "" );
1762 monsters
[ 11 ][ 6 ]-> strength
= 1 ;
1763 monsters
[ 11 ][ 6 ]-> gold
= 1 ;
1764 monsters
[ 11 ][ 6 ]-> exp
= 1 ;
1765 monsters
[ 11 ][ 6 ]-> maxhp
= 1 ;
1766 strcpy ( monsters
[ 11 ][ 6 ]-> death
, "" );
1768 strcpy ( monsters
[ 11 ][ 7 ]-> name
, "" );
1769 strcpy ( monsters
[ 11 ][ 7 ]-> weapon
, "" );
1770 monsters
[ 11 ][ 7 ]-> strength
= 1 ;
1771 monsters
[ 11 ][ 7 ]-> gold
= 1 ;
1772 monsters
[ 11 ][ 7 ]-> exp
= 1 ;
1773 monsters
[ 11 ][ 7 ]-> maxhp
= 1 ;
1774 strcpy ( monsters
[ 11 ][ 7 ]-> death
, "" );
1776 strcpy ( monsters
[ 11 ][ 8 ]-> name
, "" );
1777 strcpy ( monsters
[ 11 ][ 8 ]-> weapon
, "" );
1778 monsters
[ 11 ][ 8 ]-> strength
= 1 ;
1779 monsters
[ 11 ][ 8 ]-> gold
= 1 ;
1780 monsters
[ 11 ][ 8 ]-> exp
= 1 ;
1781 monsters
[ 11 ][ 8 ]-> maxhp
= 1 ;
1782 strcpy ( monsters
[ 11 ][ 8 ]-> death
, "" );
1784 strcpy ( monsters
[ 11 ][ 9 ]-> name
, "" );
1785 strcpy ( monsters
[ 11 ][ 9 ]-> weapon
, "" );
1786 monsters
[ 11 ][ 9 ]-> strength
= 1 ;
1787 monsters
[ 11 ][ 9 ]-> gold
= 1 ;
1788 monsters
[ 11 ][ 9 ]-> exp
= 1 ;
1789 monsters
[ 11 ][ 9 ]-> maxhp
= 1 ;
1790 strcpy ( monsters
[ 11 ][ 9 ]-> death
, "" );
1792 strcpy ( monsters
[ 11 ][ 10 ]-> name
, "" );
1793 strcpy ( monsters
[ 11 ][ 10 ]-> weapon
, "" );
1794 monsters
[ 11 ][ 10 ]-> strength
= 1 ;
1795 monsters
[ 11 ][ 10 ]-> gold
= 1 ;
1796 monsters
[ 11 ][ 10 ]-> exp
= 1 ;
1797 monsters
[ 11 ][ 10 ]-> maxhp
= 1 ;
1798 strcpy ( monsters
[ 11 ][ 10 ]-> death
, "" );
1800 strcpy ( monsters
[ 11 ][ 11 ]-> name
, "" );
1801 strcpy ( monsters
[ 11 ][ 11 ]-> weapon
, "" );
1802 monsters
[ 11 ][ 11 ]-> strength
= 1 ;
1803 monsters
[ 11 ][ 11 ]-> gold
= 1 ;
1804 monsters
[ 11 ][ 11 ]-> exp
= 1 ;
1805 monsters
[ 11 ][ 11 ]-> maxhp
= 1 ;
1806 strcpy ( monsters
[ 11 ][ 11 ]-> death
, "" );
1809 void delete_monsters ()
1811 for ( int x
= 0 ; x
< LEVELS
; x
++)
1812 for ( int y
= 0 ; y
< MONSTERS
; y
++)
1814 delete monsters
[ x
][ y
];
1817 void delete_masters ()
1819 for ( int x
= 0 ; x
< LEVELS
; x
++)
1824 void display_monster ( char * u
)
1828 aClient
* user
= find ( u
);
1829 Player
* ni
= user
-> stats
;
1831 notice ( s_GameServ
, u
, "Your Hitpoints: \ 2 %d \ 2 ", ni
-> hp
);
1832 notice ( s_GameServ
, u
, " %s 's Hitpoints: \ 2 %d \ 2 ", ni
-> fight
-> name
, ni
-> fight
-> hp
);
1833 notice ( s_GameServ
, u
, "Here are your commands:" );
1834 notice ( s_GameServ
, u
, "/msg %S attack" );
1835 notice ( s_GameServ
, u
, "/msg %S run" );
1836 notice ( s_GameServ
, u
, "What will you do?" );
1840 void display_players ( char * u
)
1844 aClient
* ni
= find ( u
);
1846 aClient
* battle
= ni
-> stats
-> battle
;
1848 notice ( s_GameServ
, u
, "Your Hitpoints: \ 2 %d \ 2 ", ni
-> stats
-> hp
);
1849 notice ( s_GameServ
, u
, " %s 's Hitpoints: \ 2 %d \ 2 ", battle
-> getNick (),
1852 notice ( s_GameServ
, u
, "Here are your commands:" );
1853 notice ( s_GameServ
, u
, "/msg %s attack" , s_GameServ
);
1854 notice ( s_GameServ
, u
, "/msg %s run" , s_GameServ
);
1855 notice ( s_GameServ
, u
, "What will you do?" );
1860 bool is_playing ( char * u
)
1863 if (!( user
= find ( u
)))
1869 return user
-> stats
!= NULL
;
1873 bool is_fighting ( char * u
)
1877 if (!( user
= find ( u
)))
1881 else if ( user
-> stats
)
1883 return user
-> stats
-> fight
!= NULL
|| user
-> stats
-> battle
!= NULL
1884 || user
-> stats
-> master
!= NULL
;
1890 bool player_fight ( char * u
)
1894 if (!( user
= find ( u
)))
1896 else if ( user
-> stats
)
1897 return user
-> stats
-> battle
!= NULL
;
1902 bool master_fight ( char * u
)
1906 if (!( user
= find ( u
)))
1908 else if ( user
-> stats
)
1909 return user
-> stats
-> master
!= NULL
;
1914 bool isnt_fighting ( char * u
)
1916 return ! is_fighting ( u
);
1919 void do_fight ( char * u
)
1921 aClient
* ni
, * battle
;
1923 char * nick
= strtok ( NULL
, " " );
1927 notice ( s_GameServ
, u
, "SYNTAX: /msg %S FIGHT PLAYER" );
1929 else if (!( ni
= find ( u
)))
1933 else if (!( battle
= find ( nick
)))
1935 notice ( s_GameServ
, u
, "You can't attack %s while they aren't playing!" , nick
);
1937 else if (! is_playing ( u
))
1939 notice ( s_GameServ
, u
, "You are not playing!" );
1942 * Offline fighting not implemented yet.
1943 * else if (!(fight = finduser(nick)))
1945 * ni->stats->battle = battle;
1946 * battle->battle = ni;
1948 * battle->yourturn = 0;
1949 * notice(s_GameServ, u, "You decide to fight %s while they're not online!",
1950 * battle->getNick());
1951 * display_players(u);
1954 else if ( is_playing ( u
) && is_playing ( nick
) && stricmp ( ni
-> stats
-> name
, battle
-> stats
-> name
) != 0 )
1956 // Set your battle pointer to the other player
1957 ni
-> stats
-> battle
= battle
;
1959 // Set the other player's battle pointer to you
1960 battle
-> stats
-> battle
= ni
;
1962 // The initiator gets the first move (perhaps this should be 50/50)
1963 ni
-> stats
-> yourturn
= 1 ;
1964 battle
-> stats
-> yourturn
= 0 ;
1966 // Initiate Battle sequence!
1967 notice ( s_GameServ
, u
, "You challenge %s to an online duel!" , battle
-> getNick ());
1968 notice ( s_GameServ
, battle
-> getNick (), " %s has challenged you to an online duel!" , u
);
1969 notice ( s_GameServ
, battle
-> getNick (), " %s gets to go first because he initiated!" , u
);
1970 notice ( s_GameServ
, battle
-> getNick (), "Please wait while %s decides what to do." , u
);
1974 void do_run ( char * u
)
1977 Player
* p
, * p2
= NULL
;
1979 if (!( user
= find ( u
)))
1981 notice ( s_GameServ
, u
, "Couldn't find you. Error. Contact a %S admin" );
1988 p2
= p
-> battle
-> stats
;
1990 if (! is_fighting ( u
))
1991 notice ( s_GameServ
, u
, "You run in place... try fighting next time." );
1992 else if (! player_fight ( u
) && ! master_fight ( u
))
1994 notice ( s_GameServ
, u
, "You run away from \ 2 %s \ 2 like a little baby!", p
-> fight
-> name
);
1998 else if ( player_fight ( u
) && p
-> yourturn
)
2000 notice ( s_GameServ
, u
, "You run away from \ 2 %s \ 2 like a little baby!", p2
-> name
);
2001 notice ( s_GameServ
, p
-> battle
-> getNick (), "\ 2 %s \ 2 ran away from you like a little baby!", p
-> name
);
2004 else if ( player_fight ( u
) && ! p
-> yourturn
)
2006 notice ( s_GameServ
, u
, "It is not your turn. Please wait until \ 2 %s \ 2 decides what to do.", p2
-> name
);
2008 else if ( master_fight ( u
))
2010 notice ( s_GameServ
, u
, "You cannot run from \ 2 %s \ 2 ! FIGHT!", p
-> master
-> name
);
2014 void do_attack ( char * u
)
2017 aClient
* ni
, * battle
; // The player and perhaps the player they're fighting
2018 Monster
* fight
; // The monster they may be fighting
2020 if (!( ni
= find ( u
)))
2022 notice ( s_GameServ
, u
, "You're not playing!" );
2025 else if (! ni
-> stats
-> fight
&& ! ni
-> stats
-> battle
&& ! ni
-> stats
-> master
)
2027 notice ( s_GameServ
, u
, "You're not in battle!" );
2032 if (! ni
-> stats
-> master
) // This is not a master fight
2033 fight
= ni
-> stats
-> fight
; // Monster Could be NULL
2034 else // This IS a master fight
2035 fight
= ni
-> stats
-> master
; // Master Could be NULL
2037 battle
= ni
-> stats
-> battle
; // Player Could be NULL
2039 // One has to be !NULL based on the previous else if
2040 // We wouldn't be here if they were all NULL
2043 if (! player_fight ( u
))
2046 hit
= (( ni
-> stats
-> strength
+ webonus
[ ni
-> stats
-> weapon
]) / 2 ) +
2047 ( rand () % (( ni
-> stats
-> strength
+ webonus
[ ni
-> stats
-> weapon
]) / 2 ));
2050 mhit
= ( fight
-> strength
/ 2 ) +
2051 ( rand () % ( fight
-> strength
/ 2 ) - ( ni
-> stats
-> defense
+
2052 arbonus
[ ni
-> stats
-> armor
]));
2057 mhit
= ((( battle
-> stats
-> strength
+ webonus
[ battle
-> stats
-> weapon
]) / 2 ) +
2058 ( rand () % (( battle
-> stats
-> strength
+ webonus
[ battle
-> stats
-> weapon
])) / 2 ) -
2059 ( ni
-> stats
-> defense
+ arbonus
[ ni
-> stats
-> armor
]));
2062 hit
= ((( ni
-> stats
-> strength
+ webonus
[ ni
-> stats
-> weapon
]) / 2 ) +
2063 ( rand () % (( ni
-> stats
-> strength
+ webonus
[ ni
-> stats
-> weapon
])) / 2 ) -
2064 ( battle
-> stats
-> defense
+ arbonus
[ battle
-> stats
-> armor
]));
2067 if (! player_fight ( u
))
2070 notice ( s_GameServ
, u
, "You attack \1f %s \1f for \ 2 %d \ 2 points!", fight
-> name
, hit
);
2072 notice ( s_GameServ
, u
, "You miss \1f %s \1f completely!", fight
-> name
);
2074 if ( hit
>= fight
-> hp
)
2076 if ( master_fight ( u
))
2077 notice ( s_GameServ
, u
, "You have bested %s !" , fight
-> name
);
2079 notice ( s_GameServ
, u
, "You have killed \ 2 %s \ 2 !", fight
-> name
);
2081 notice ( s_GameServ
, u
, " %s " , fight
-> death
);
2082 notice ( s_GameServ
, u
, "You recieve \ 2 %d \ 2 experience and \ 2 %d \ 2 gold!",
2083 fight
-> exp
, fight
-> gold
);
2085 // If your new experience (or gold) will be greater than 2 billion,
2086 // then set your exp to 2bil. (2 billion max)... otherwise add them.
2087 // This could be a problem with overflowing out of the sign bit.
2088 // Unsigned long int maybe? Leave it for now.
2089 ni
-> stats
-> exp
= ( ( ni
-> stats
-> exp
+ fight
-> exp
) > 2000000000 ? 2000000000 :
2090 ni
-> stats
-> exp
+ fight
-> exp
);
2091 ni
-> stats
-> gold
= ( ni
-> stats
-> gold
+ fight
-> gold
> 2000000000 ? 2000000000 :
2092 ni
-> stats
-> gold
+ fight
-> gold
);
2095 if ( master_fight ( u
))
2097 notice ( s_GameServ
, u
, "You are now level %d !" , ni
-> stats
-> level
+ 1 );
2098 notice ( s_GameServ
, u
, "You gain %d Strength, and %d Defense points!" ,
2099 strbonus
[ ni
-> stats
-> level
- 1 ], defbonus
[ ni
-> stats
-> level
- 1 ]);
2101 // Increase your level
2104 // Increase your maximum hit points
2105 ni
-> stats
-> maxhp
+= hpbonus
[ ni
-> stats
-> level
- 1 ];
2107 // Heal the player by setting hp to their max
2108 ni
-> stats
-> hp
= ni
-> stats
-> maxhp
;
2110 // Add to your strength
2111 ni
-> stats
-> strength
+= strbonus
[ ni
-> stats
-> level
- 1 ];
2113 // Add to your defensive power
2114 ni
-> stats
-> defense
+= defbonus
[ ni
-> stats
-> level
- 1 ];
2116 // Clear the pointer for your master
2117 ni
-> stats
-> master
= NULL
;
2120 // They're dead so remove the pointer
2121 delete ni
-> stats
-> fight
;
2122 ni
-> stats
-> fight
= NULL
;
2123 ni
-> stats
-> master
= NULL
;
2133 notice ( s_GameServ
, u
, "\1f %s \1f attacks with their \1f %s \1f for \ 2 %d \ 2 damage!",
2134 fight
-> name
, fight
-> weapon
, mhit
);
2137 notice ( s_GameServ
, u
, " %s completely misses you!" , fight
-> name
);
2139 if ( mhit
>= ni
-> stats
-> hp
)
2141 if (! master_fight ( u
))
2143 notice ( s_GameServ
, u
, "You have been \ 2 \1f killed\1f \ 2 by %s !" , fight
-> name
);
2144 notice ( s_GameServ
, u
, "You lose all gold on hand and lose 10 percent " \
2145 "of your experience!" );
2146 ni
-> stats
-> gold
= 0 ;
2147 ni
-> stats
-> exp
-= ( long int )( ni
-> stats
-> exp
* .10 );
2148 ni
-> stats
-> fight
= NULL
;
2153 notice ( s_GameServ
, u
, " %s has bested you! You will have to wait " \
2154 "until tomorrow to try again" , ni
-> stats
-> master
-> name
);
2155 ni
-> stats
-> fight
= NULL
;
2156 ni
-> stats
-> master
= NULL
;
2163 ni
-> stats
-> hp
-= mhit
;
2169 else if ( player_fight ( u
))
2171 /* Offline fighting not available yet
2172 if (!(online = finduser(ni->stats->battle->nick)) || !nick_identified(online))
2175 notice(s_GameServ, u, "You attack \1f %s\1f for \ 2 %d\ 2 points!", battle->nick, hit);
2177 notice(s_GameServ, u, "You miss \1f %s\1f completely!", battle->nick);
2178 if (hit >= battle->stats->hp)
2180 notice(s_GameServ, u, "You have killed \ 2 %s\ 2 !", battle->nick);
2181 * notice(s_GameServ, u, "You recieve \ 2 %d\ 2 experience and \ 2 %ld\ 2 gold!",
2182 (long int)(battle->stats->exp * .10), battle->stats->gold);
2183 if (2000000000 - ni->stats->exp > (long int)(battle->stats->exp * .10))
2185 ni->stats->exp += (long int)(battle->stats->exp * .10);
2186 battle->stats->exp -= (long int)(battle->stats->exp * .10);
2190 battle->stats->exp -= (long int)(battle->stats->exp * .10);
2191 ni->stats->exp = 2000000000;
2194 if (2000000000 - ni->stats->gold > battle->stats->gold)
2196 * ni->stats->gold += battle->stats->gold;
2197 battle->stats->gold = 0;
2201 battle->stats->gold = 2000000000 - ni->stats->gold;
2202 ni->stats->gold = 2000000000;
2204 * ni->stats->battle->stats->alive = 0;
2205 ni->stats->battle->battle = NULL;
2206 ni->stats->battle = NULL;
2212 * battle->stats->hp -= hit;
2215 notice(s_GameServ, u, "\1f %s\1f hits you with their \1f %s\1f for \ 2 %d\ 2 damage!",
2216 battle->nick, weapons[battle->stats->weapon], mhit);
2219 notice(s_GameServ, u, "%s completely misses you!", battle->nick);
2221 if (mhit >= ni->stats->hp)
2223 notice(s_GameServ, u, "You have been \ 2 \1f killed\1f \ 2 by %s!", battle->nick);
2224 if (2000000000 - battle->stats->gold > ni->stats->gold)
2226 notice(s_GameServ, u, "%s took all your gold!", battle->nick);
2227 battle->stats->gold += ni->stats->gold;
2228 * ni->stats->gold = 0;
2232 notice(s_GameServ, u, "You're lucky, %s couldn't carry all your gold.",
2234 ni->stats->gold -= (2000000000 - battle->stats->gold);
2235 notice(s_GameServ, u, "You were left dead with %d gold.",
2236 * (long int)ni->stats->gold);
2237 battle->stats->gold = 2000000000;
2239 ni->stats->battle->battle = NULL;
2240 ni->stats->battle = NULL;
2241 ni->stats->alive = 0;
2247 ni->stats->hp -= mhit;
2253 * end offline fighting */
2255 if ( is_playing ( battle
-> getNick ()))
2257 if ( ni
-> stats
-> yourturn
== 0 )
2259 notice ( s_GameServ
, u
, "Please wait until %s decides what to do!" ,
2265 notice ( s_GameServ
, u
, "You attack \1f %s \1f for \ 2 %d \ 2 points!", battle
-> getNick (), hit
);
2267 notice ( s_GameServ
, battle
-> getNick (), " %s has hit you with their %s for " \
2268 "\ 2 %d \ 2 damage!", u
, weapons
[ ni
-> stats
-> weapon
],
2270 ni
-> stats
-> yourturn
= 0 ;
2271 battle
-> stats
-> yourturn
= 1 ;
2272 display_players ( battle
-> getNick ());
2276 notice ( s_GameServ
, u
, "You miss \1f %s \1f completely!", battle
-> getNick ());
2277 notice ( s_GameServ
, battle
-> getNick (), " %s misses you completely!" , u
);
2278 ni
-> stats
-> yourturn
= 0 ;
2279 battle
-> stats
-> yourturn
= 1 ;
2280 display_players ( battle
-> getNick ());
2282 if ( hit
>= battle
-> stats
-> hp
)
2284 notice ( s_GameServ
, u
, "You have killed \ 2 %s \ 2 !", battle
-> getNick ());
2285 notice ( s_GameServ
, u
, "You recieve \ 2 %d \ 2 experience and \ 2 %l d\ 2 gold!" ,
2286 ( long int )( battle
-> stats
-> exp
* .10 ), battle
-> stats
-> gold
);
2287 notice ( s_GameServ
, battle
-> getNick (), "You have been killed by \ 2 %s \ 2 !", u
);
2288 battle
-> stats
-> hp
= 0 ;
2289 battle
-> stats
-> alive
= 0 ;
2291 if ( 2000000000 - ni
-> stats
-> exp
> ( long int )( battle
-> stats
-> exp
* .10 ))
2293 ni
-> stats
-> exp
+= ( long int )( battle
-> stats
-> exp
* .10 );
2294 battle
-> stats
-> exp
-= ( long int )( battle
-> stats
-> exp
* .10 );
2298 battle
-> stats
-> exp
-= ( long int )( battle
-> stats
-> exp
* .10 );
2299 ni
-> stats
-> exp
= 2000000000 ;
2302 if ( 2000000000 - ni
-> stats
-> gold
> battle
-> stats
-> gold
)
2304 notice ( s_GameServ
, battle
-> getNick (), "You lose ten percent of experience and " \
2305 "all gold on hand!" );
2306 ni
-> stats
-> gold
+= battle
-> stats
-> gold
;
2307 battle
-> stats
-> gold
= 0 ;
2311 battle
-> stats
-> gold
= 2000000000 - ni
-> stats
-> gold
;
2312 notice ( s_GameServ
, battle
-> getNick (), "You lose ten percent of your experience!" );
2314 notice ( s_GameServ
, battle
-> getNick (), "However, %s could not carry all of your " \
2317 notice ( s_GameServ
, battle
-> getNick (), "Luckily, you still have \ 2 %l d\ 2 gold " \
2318 "left. All is not lost!" , battle
-> stats
-> gold
);
2320 ni
-> stats
-> gold
= 2000000000 ;
2322 battle
-> stats
-> battle
= NULL
;
2323 ni
-> stats
-> battle
= NULL
;
2329 battle
-> stats
-> hp
-= hit
;
2330 //display_players(battle->getNick());
2331 ni
-> stats
-> yourturn
= 0 ;
2332 battle
-> stats
-> yourturn
= 1 ;
2333 notice ( s_GameServ
, u
, "Please wait while %s decides what to do!" ,
2341 void do_heal ( char * u
)
2344 char * amount
= strtok ( NULL
, " " );
2349 notice ( s_GameServ
, u
, "SYNTAX: /msg %S HEAL {ALL | #}" );
2351 else if (!( ni
= find ( u
)) || ! ni
-> stats
)
2353 notice ( s_GameServ
, u
, "You aren't playing!" );
2355 else if ( is_fighting ( u
))
2357 notice ( s_GameServ
, u
, "You can't heal in battle!" );
2359 else if ( ni
-> stats
-> hp
>= ni
-> stats
-> maxhp
)
2361 notice ( s_GameServ
, u
, "You don't need healing!" );
2363 else if ( stricmp ( amount
, "ALL" ) == 0 )
2365 price
= ni
-> stats
-> level
* 3 ;
2366 if ( ni
-> stats
-> gold
< ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
) * price
)
2368 notice ( s_GameServ
, u
, "Healing \ 2 %d \ 2 points for \ 2 %d \ 2 gold per point.",
2369 ( long int ) ni
-> stats
-> gold
/ price
, price
);
2370 ni
-> stats
-> hp
+= ni
-> stats
-> gold
/ price
;
2371 ni
-> stats
-> gold
%= price
;
2375 notice ( s_GameServ
, u
, "Healing all possible points at \ 2 %d \ 2 gold "\
2376 "per point." , price
);
2377 notice ( s_GameServ
, u
, "\ 2 %d \ 2 points healed for \ 2 %l d\ 2 gold. HP at MAX!" ,
2378 ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
),
2379 ( price
* ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
)) );
2380 ni
-> stats
-> gold
-= price
* ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
);
2381 ni
-> stats
-> hp
= ni
-> stats
-> maxhp
;
2384 else if ( isstringnum ( amount
))
2386 num
= stringtoint ( amount
);
2387 price
= ni
-> stats
-> level
* 3 ;
2388 if ( ni
-> stats
-> gold
< price
* num
)
2390 notice ( s_GameServ
, u
, "You only have enough gold to heal \ 2 %d \ 2 points!",
2391 ( long int ) ni
-> stats
-> gold
/ price
);
2393 else if ( num
<= ni
-> stats
-> maxhp
- ni
-> stats
-> hp
)
2395 notice ( s_GameServ
, u
, "Healing \ 2 %d \ 2 points at \ 2 %d \ 2 gold per point.",
2397 ni
-> stats
-> hp
+= num
;
2398 ni
-> stats
-> gold
-= num
* price
;
2400 else if ( num
> ni
-> stats
-> maxhp
- ni
-> stats
-> hp
)
2402 notice ( s_GameServ
, u
, "Healing all possible points at \ 2 %d \ 2 gold "\
2403 "per point." , price
);
2404 notice ( s_GameServ
, u
, "\ 2 %d \ 2 points healed. HP at MAX!",
2405 ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
));
2406 ni
-> stats
-> gold
-= price
* ( ni
-> stats
-> maxhp
- ni
-> stats
-> hp
);
2407 ni
-> stats
-> hp
= ni
-> stats
-> maxhp
;
2410 else if ( amount
[ 0 ] == '-' )
2411 notice ( s_GameServ
, u
, "You trying to cheat?" );
2413 notice ( s_GameServ
, u
, "SYNTAX: /msg %S HEAL {ALL | #}" );
2416 int isstringnum ( char * num
)
2419 for ( x
= 0 ; x
< strlen ( num
); x
++)
2421 if (( int ) num
[ x
] < 48 || ( int ) num
[ x
] > 57 )
2427 long int stringtoint ( char * number
)
2429 cout
<< "stringtoint: " << number
<< endl
;
2430 long int x
, len
= strlen ( number
), sum
= 0 ;
2432 return chartoint ( number
[ 0 ]);
2433 sum
+= chartoint ( number
[ len
- 1 ]);
2434 for ( x
= len
- 2 ; x
>= 0 ; x
--)
2436 cout
<< "Adding: " << chartoint ( number
[ x
]) * pow ( 10 , abs ( x
- len
+ 1 )) <<
2438 sum
+= chartoint ( number
[ x
]) * pow ( 10 , abs ( x
- len
+ 1 ));
2443 long int pow ( int x
, int y
)
2449 if ( x
!= 0 && y
!= 0 )
2451 for ( count
= 1 ; count
<= y
- 1 ; count
++)
2459 long int chartoint ( char ch
)
2461 if ( int ( ch
) >= 48 && int ( ch
) <= 57 )
2462 return int ( ch
) - 48 ;
2469 ListNode
< aClient
> * ptr
= players
. First ();
2473 outfile
. open ( playerdata
);
2477 cerr
<< "Error opening " << playerdata
<< endl
;
2483 it
= ptr
-> getData ()-> stats
;
2484 outfile
<< it
-> name
<< ' ' << it
-> level
<< ' ' << it
-> exp
<< ' ' << it
-> gold
<< ' ' << it
-> bank
<< ' '
2485 << it
-> hp
<< ' ' << it
-> maxhp
<< ' ' << it
-> strength
<< ' ' << it
-> defense
<< ' '
2486 << it
-> armor
<< ' ' << it
-> weapon
<< ' ' << ( it
-> alive
? "alive" : "dead" ) << ' '
2487 << it
-> forest_fights
<< ' ' << it
-> player_fights
<< ' '
2488 << it
-> password
<< endl
;
2500 char * alive
, * tempname
, * buf
, * password
;
2501 buf
= new char [ 1023 ];
2503 infile
. open ( playerdata
);
2507 cerr
<< "Error opening " << playerdata
<< endl
;
2511 while ( infile
. getline ( buf
, 1024 , ' \n ' ))
2514 tempname
= strtok ( buf
, " " );
2515 temp
-> stats
= new Player ( tempname
);
2518 p
-> level
= stringtoint ( strtok ( NULL
, " " ));
2519 p
-> exp
= stringtoint ( strtok ( NULL
, " " ));
2520 p
-> gold
= stringtoint ( strtok ( NULL
, " " ));
2521 p
-> bank
= stringtoint ( strtok ( NULL
, " " ));
2522 p
-> hp
= stringtoint ( strtok ( NULL
, " " ));
2523 p
-> maxhp
= stringtoint ( strtok ( NULL
, " " ));
2524 p
-> strength
= stringtoint ( strtok ( NULL
, " " ));
2525 p
-> defense
= stringtoint ( strtok ( NULL
, " " ));
2526 p
-> armor
= stringtoint ( strtok ( NULL
, " " ));
2527 p
-> weapon
= stringtoint ( strtok ( NULL
, " " ));
2528 alive
= strtok ( NULL
, " " );
2529 p
-> alive
= ( stricmp ( alive
, "ALIVE" ) == 0 ? true : false );
2530 p
-> forest_fights
= stringtoint ( strtok ( NULL
, " " ));
2531 p
-> player_fights
= stringtoint ( strtok ( NULL
, " " ));
2532 password
= strtok ( NULL
, " " );
2533 strcpy ( p
-> password
, password
);
2534 temp
-> setNick ( "NULL" );
2536 printf ( " %s %d %l d %l d %l d %d %d %d %d %d %d %s %d %d %s \n " , p
-> name
, p
-> level
,
2537 p
-> exp
, p
-> gold
, p
-> bank
, p
-> hp
, p
-> maxhp
, p
-> strength
, p
-> defense
, p
-> armor
, p
-> weapon
,
2538 alive
, p
-> forest_fights
, p
-> player_fights
, p
-> password
);
2540 players
. insertAtBack ( temp
);
2548 bool passcmp ( char * encrypted
, char * plaintext
)
2551 char * plaintext2
, * plainToencrypt
;
2554 plaintext2
= new char [ strlen ( encrypted
) + strlen ( plaintext
)]; // Extra
2555 strcpy ( plaintext2
, plaintext
);
2557 salt
[ 0 ] = encrypted
[ 0 ];
2558 salt
[ 1 ] = encrypted
[ 1 ];
2561 plainToencrypt
= crypt ( plaintext2
, salt
);
2563 same
= ( strcmp (( const char *) encrypted
, plainToencrypt
) == 0 ? true : false );
2565 delete [] plaintext2
;
2570 bool check_password ( char * name
, char * plaintext
)
2574 if (!( client
= findplayer ( name
)))
2578 return passcmp ( client
-> stats
-> password
, plaintext
);
2582 void do_store ( char * u
)
2584 char * cmd
= strtok ( NULL
, " " );
2585 char * item
= strtok ( NULL
, " " );
2586 char * num
= strtok ( NULL
, " " );
2592 if (! is_playing ( u
) || !( user
= find ( u
)))
2593 notice ( s_GameServ
, u
, "You must be playing to use the store!" );
2594 else if (! cmd
|| ! item
)
2596 notice ( s_GameServ
, u
, "SYNTAX: STORE LIST {ARMOR | WEAPONS}" );
2597 notice ( s_GameServ
, u
, " \ 2 STORE SELL {ARMOR | WEAPON}\ 2 " );
2598 notice ( s_GameServ
, u
, " \ 2 STORE BUY {ARMOR | WEAPON} \1f NUMBER\1f \ 2 " );
2600 else if ( stricmp ( cmd
, "LIST" ) == 0 )
2602 if ( stricmp ( item
, "WEAPONS" ) == 0 )
2604 notice ( s_GameServ
, u
, "Welcome to Kain's Armory" );
2605 notice ( s_GameServ
, u
, "Here are the weapons we have available for the killing, sire:" );
2606 for ( int x
= 1 ; x
< WNA
; x
++)
2608 space
= spaces ( strlen ( weapons
[ x
]), "." );
2609 notice ( s_GameServ
, u
, " %s%d . %s%s%d " ,( x
< 10 ? " " : "" ), x
, weapons
[ x
], space
, prices
[ x
- 1 ]);
2612 notice ( s_GameServ
, u
, "To purchase a weapon, type /msg %S STORE BUY \ 2 NUM\ 2 ." );
2613 notice ( s_GameServ
, u
, "Where num. is the weapon number from the menu above." );
2616 else if ( stricmp ( item
, "ARMOR" ) == 0 )
2618 notice ( s_GameServ
, u
, "Welcome to Kain's Armory" );
2619 notice ( s_GameServ
, u
, "I hope you enjoy the fine armor we have available for your protection:" );
2620 for ( int x
= 1 ; x
< WNA
; x
++)
2622 space
= spaces ( strlen ( armors
[ x
]), "." );
2623 notice ( s_GameServ
, u
, " %s%d . %s%s%d " ,( x
< 10 ? " " : "" ), x
, armors
[ x
], space
, prices
[ x
- 1 ]);
2626 notice ( s_GameServ
, u
, "To purchase armor, type /msg %S store buy armor num." );
2627 notice ( s_GameServ
, u
, "Where num. is the armor number from the menu above." );
2631 } else if ( stricmp ( cmd
, "BUY" ) == 0 ) {
2634 notice ( s_GameServ
, u
, "SYNTAX: \ 2 STORE BUY {ARMOR | WEAPON} \1f NUMBER\1f \ 2 " );
2637 else if (! isstringnum ( num
))
2639 notice ( s_GameServ
, u
, "You must specify a number between 1 and %d . Not %s !" , WNA
- 1 , num
);
2642 if ( stricmp ( item
, "WEAPON" ) == 0 )
2644 wep
= stringtoint ( num
);
2645 if ( wep
>= WNA
|| wep
< 1 )
2647 notice ( s_GameServ
, u
, "The number %d is out of range. The number you provide must be between 1 and %d ." , wep
, WNA
- 1 );
2654 notice ( s_GameServ
, u
, "You have to sell your %s first!" , weapons
[ p
-> weapon
]);
2655 else if ( p
-> gold
< prices
[ wep
- 1 ])
2656 notice ( s_GameServ
, u
, "You don't have enough gold for %s !" , weapons
[ wep
]);
2659 notice ( s_GameServ
, u
, "You have purchased %s ! Thanks for the gold!" , weapons
[ wep
]);
2661 p
-> gold
-= prices
[ wep
- 1 ];
2664 else if ( stricmp ( item
, "ARMOR" ) == 0 )
2666 wep
= stringtoint ( num
);
2667 if ( wep
>= WNA
|| wep
< 1 )
2669 notice ( s_GameServ
, u
, "The number %d is out of range. The number you provide must be between 1 and %d ." , wep
, WNA
- 1 );
2676 notice ( s_GameServ
, u
, "You have to sell your %s first!" , armors
[ p
-> armor
]);
2677 else if ( p
-> gold
< prices
[ wep
- 1 ])
2678 notice ( s_GameServ
, u
, "You don't have enough gold for %s !" , armors
[ wep
]);
2681 notice ( s_GameServ
, u
, "You have purchased %s ! Thanks for the gold!" , armors
[ wep
]);
2683 p
-> gold
-= prices
[ wep
- 1 ];
2687 else if ( stricmp ( cmd
, "SELL" ) == 0 )
2691 if ( stricmp ( item
, "WEAPON" ) == 0 )
2695 notice ( s_GameServ
, u
, "You want me to chop off your hands?" );
2698 else if ( p
-> gold
== 2000000000 )
2700 notice ( s_GameServ
, u
, "You have enough gold. I'll just take that off your hands, sire." );
2703 else if ( 2000000000 - p
-> gold
< ( prices
[ p
-> weapon
- 1 ] / 2 ))
2705 notice ( s_GameServ
, u
, "Thank you for your business! You now have as much gold as you can carry." );
2706 notice ( s_GameServ
, u
, "However, you have no weapon... can I interest you in the %s ?" , weapons
[ WNA
- 1 ]);
2707 p
-> gold
= 2000000000 ;
2712 notice ( s_GameServ
, u
, "Thank you for your business! You now have %d more gold but no weapon!" , ( prices
[ p
-> weapon
- 1 ] / 2 ));
2713 p
-> gold
+= ( prices
[ p
-> weapon
- 1 ] / 2 );
2717 else if ( stricmp ( item
, "ARMOR" ) == 0 )
2723 notice ( s_GameServ
, u
, "I don't think you can be any more naked..." );
2726 if ( p
-> gold
== 2000000000 )
2728 notice ( s_GameServ
, u
, "You have enough gold. I'll just take that off your hands, sire." );
2731 else if ( 2000000000 - p
-> gold
< ( prices
[ p
-> armor
- 1 ] / 2 ))
2733 notice ( s_GameServ
, u
, "Thank you for your business! You now have as much gold as you can carry." );
2734 notice ( s_GameServ
, u
, "However, you have no armor... can I interest you in %s ?" , armors
[ WNA
- 1 ]);
2735 p
-> gold
= 2000000000 ;
2740 notice ( s_GameServ
, u
, "Thank you for your business! You now have %d more gold but no armor!" ,
2741 ( prices
[ p
-> armor
- 1 ] / 2 ));
2743 p
-> gold
+= ( prices
[ p
-> armor
- 1 ] / 2 );
2749 notice ( s_GameServ
, u
, "SYNTAX: STORE LIST {ARMOR | WEAPONS}" );
2750 notice ( s_GameServ
, u
, " \ 2 STORE SELL {ARMOR | WEAPON}\ 2 " );
2751 notice ( s_GameServ
, u
, " \ 2 STORE BUY {ARMOR | WEAPON} \1f NUMBER\1f \ 2 " );
2756 void do_bank ( char * u
)
2758 char * cmd
= strtok ( NULL
, " " );
2759 char * amount
= strtok ( NULL
, " " );
2760 char * nick
= strtok ( NULL
, " " );
2765 if (! cmd
|| ! amount
|| ( stricmp ( cmd
, "TRANSFER" ) == 0 && ! nick
))
2767 notice ( s_GameServ
, u
, "BANK {WITHDRAW | DEPOSIT} {ALL | AMOUNT}" );
2768 notice ( s_GameServ
, u
, "BANK BALANCE" );
2771 else if (! is_playing ( u
) || !( user
= find ( u
)))
2773 notice ( s_GameServ
, u
, "You must be playing to use the bank!" );
2776 else if (! isstringnum ( amount
) && stricmp ( amount
, "ALL" ) != 0 )
2778 notice ( s_GameServ
, u
, "I don't know how to convert alphabet letters into currency, sire!" );
2784 if ( stricmp ( cmd
, "BALANCE" ) == 0 )
2788 else if ( stricmp ( cmd
, "DEPOSIT" ) == 0 )
2790 if ( p
-> bank
== 2000000000 )
2792 notice ( s_GameServ
, u
, "Your bank account is full, sire!" );
2795 else if ( stricmp ( amount
, "ALL" ) == 0 )
2797 if ( 2000000000 - p
-> bank
< p
-> gold
)
2799 notice ( s_GameServ
, u
, "You don't have enough room for all of your gold." );
2800 notice ( s_GameServ
, u
, "Depositing %l d gold into your account" , ( 2000000000 - p
-> bank
));
2801 p
-> gold
-= ( 2000000000 - p
-> bank
);
2802 p
-> bank
= 2000000000 ;
2807 notice ( s_GameServ
, u
, "Depositing %l d gold into your account!" , p
-> gold
);
2813 else if ( stringtoint ( amount
) > p
-> gold
)
2815 notice ( s_GameServ
, u
, "Sire, you only have %l d gold!" , p
-> gold
);
2821 if ( 2000000000 - p
-> bank
< stringtoint ( amount
))
2823 notice ( s_GameServ
, u
, "You don't have room in your account for that much." );
2824 notice ( s_GameServ
, u
, "Capping off your account with %l d gold!" , ( 2000000000 - p
-> bank
));
2825 p
-> gold
-= ( 2000000000 - p
-> bank
);
2826 p
-> bank
= 2000000000 ;
2831 notice ( s_GameServ
, u
, "Depositing %d gold into your account!" , stringtoint ( amount
));
2832 p
-> bank
+= stringtoint ( amount
);
2833 p
-> gold
-= stringtoint ( amount
);
2838 else if ( stricmp ( cmd
, "WITHDRAW" ) == 0 )
2840 if ( p
-> gold
== 2000000000 )
2842 notice ( s_GameServ
, u
, "You cannot carry any more gold, sire!" );
2846 else if ( stricmp ( amount
, "ALL" ) == 0 )
2848 if ( 2000000000 - p
-> gold
< p
-> bank
)
2850 notice ( s_GameServ
, u
, "You don't have enough room to carry all that gold." );
2851 notice ( s_GameServ
, u
, "Withdrawing %l d gold from your account" , ( 2000000000 - p
-> gold
));
2852 p
-> bank
-= ( 2000000000 - p
-> gold
);
2853 p
-> gold
= 2000000000 ;
2858 notice ( s_GameServ
, u
, "Withdrawing %l d gold from your account!" , p
-> bank
);
2864 else if ( stringtoint ( amount
) > p
-> bank
)
2866 notice ( s_GameServ
, u
, "Sire, you only have %l d gold in the bank!" , p
-> bank
);
2872 if ( 2000000000 - p
-> gold
< stringtoint ( amount
))
2874 notice ( s_GameServ
, u
, "You don't enough have room to carry that much gold!" );
2875 notice ( s_GameServ
, u
, "You fill your pockets with %l d gold!" ,
2876 ( 2000000000 - p
-> gold
));
2877 p
-> bank
-= ( 2000000000 - p
-> gold
);
2878 p
-> gold
= 2000000000 ;
2883 notice ( s_GameServ
, u
, "Withdrawing %d gold from your account!" , stringtoint ( amount
));
2884 p
-> gold
+= stringtoint ( amount
);
2885 p
-> bank
-= stringtoint ( amount
);
2893 void do_master ( char * u
)
2896 if (!( user
= find ( u
)))
2898 notice ( s_GameServ
, u
, "Fatal error. Contact a(n) %S admin. buf: %s " , strtok ( NULL
, "" ));
2904 notice ( s_GameServ
, u
, "You're in the middle of a fight! Pay attention!" );
2907 else if (! is_playing ( u
))
2909 notice ( s_GameServ
, u
, "You must be playing to see your master!" );
2914 Player
* p
= user
-> stats
;
2953 notice ( s_GameServ
, u
, "You are at level 12. You are the master. What's left? The DRAGON!" );
2956 need
= p
-> exp
+ 1 ; // Unknown level... don't let them fight a fake master!
2962 notice ( s_GameServ
, u
, "You are not worthy of fighting %s ! You need %l d more experience." , masters
[ p
-> level
- 1 ]-> name
, ( need
- p
-> exp
));
2966 void see_master ( char * u
)
2969 if (!( user
= find ( u
)))
2971 notice ( s_GameServ
, u
, "Fatal error. Contact a(n) %S admin. buf: %s " , strtok ( NULL
, "" ));
2975 if (! is_fighting ( u
) && is_playing ( u
))
2977 Player
* p
= user
-> stats
;
2978 p
-> master
= new Monster ( masters
[ p
-> level
- 1 ]);
2979 p
-> fight
= p
-> master
;
2980 display_monster ( u
); // Since master is the same structure, use this function
2984 void showBankBalance ( const char * u
)
2988 if (!( user
= find ( u
)))
2996 notice ( s_GameServ
, u
, "Account Balance: %l d Gold On hand: %l d" , p
-> bank
, p
-> gold
);
3002 ListNode
< aClient
> * it
;
3005 it
= players
. First ();
3009 p
= it
-> getData ()-> stats
;
3015 void refresh ( Player
* p
)
3021 p
-> forest_fights
= 100 ;
3022 p
-> player_fights
= 3 ;