/*************************************************************************** * God Wars Mud originally written by KaVir aka Richard Woolcock. * * Changes done to the code done by Sage aka Walter Howard, this mud is * * for the public, however if you run this code it means you agree * * to the license.low, license.gw, and license.merc have fun. :) * ***************************************************************************/ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "merc.h" void load_leaders args(( void )); void save_leaders args(( void )); void do_leaders( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; if ( IS_NPC(ch) ) return; centre_text("{r--==(++) The Leaders (++)==--{x",ch); line(ch); stc("{c Name Player Kills Player Deaths{x\n\r",ch); line(ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[0]->name,leader[0]->kills,leader[0]->deaths); stc(buf,ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[1]->name,leader[1]->kills,leader[1]->deaths); stc(buf,ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[2]->name,leader[2]->kills,leader[2]->deaths); stc(buf,ch); line(ch); centre_text("{y--==(++) The Fodder (++)==--{x",ch); line(ch); stc("{c Name Player Kills Player Deaths{x\n\r",ch); line(ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[5]->name,leader[5]->kills,leader[5]->deaths); stc(buf,ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[4]->name,leader[4]->kills,leader[4]->deaths); stc(buf,ch); sprintf(buf," %-13s %-4d %-4d\n\r",leader[3]->name,leader[3]->kills,leader[3]->deaths); stc(buf,ch); line(ch); return; } void swap_leader1( CHAR_DATA *ch ) { strcpy( leader[2]->name, leader[1]->name ); leader[2]->kills = leader[1]->kills; leader[2]->deaths = leader[1]->deaths; strcpy( leader[1]->name, leader[0]->name ); leader[1]->kills = leader[0]->kills; leader[1]->deaths = leader[0]->deaths; strcpy( leader[0]->name, ch->name ); leader[0]->kills = ch->pkill; leader[0]->deaths = ch->pdeath; save_leaders(); return; } void swap_leader2( CHAR_DATA *ch ) { strcpy( leader[2]->name, leader[1]->name ); leader[2]->kills = leader[1]->kills; leader[2]->deaths = leader[1]->deaths; strcpy( leader[1]->name, ch->name ); leader[1]->kills = ch->pkill; leader[1]->deaths = ch->pdeath; save_leaders(); return; } void swap_leader3( CHAR_DATA *ch ) { strcpy( leader[2]->name, ch->name ); leader[2]->kills = ch->pkill; leader[2]->deaths = ch->pdeath; save_leaders(); return; } void swap_death1( CHAR_DATA *ch ) { strcpy( leader[5]->name, leader[4]->name ); leader[5]->kills = leader[4]->kills; leader[5]->deaths = leader[4]->deaths; strcpy( leader[4]->name, leader[3]->name ); leader[4]->kills = leader[3]->kills; leader[4]->deaths = leader[3]->deaths; strcpy( leader[3]->name, ch->name ); leader[3]->kills = ch->pkill; leader[3]->deaths = ch->pdeath; save_leaders(); return; } void swap_death2( CHAR_DATA *ch ) { strcpy( leader[4]->name, leader[3]->name ); leader[4]->kills = leader[3]->kills; leader[4]->deaths = leader[3]->deaths; strcpy( leader[3]->name, ch->name ); leader[3]->kills = ch->pkill; leader[3]->deaths = ch->pdeath; save_leaders(); return; } void swap_death3( CHAR_DATA *ch ) { strcpy( leader[3]->name, ch->name ); leader[3]->kills = ch->pkill; leader[3]->deaths = ch->pdeath; save_leaders(); return; } void update_leaders( CHAR_DATA *ch ) { if ( IS_NPC(ch) ) return; if ( ch->pkill > leader[0]->kills && !IS_LEADER(ch)) { swap_leader1( ch ); } else if ( ch->pkill > leader[1]->kills && !IS_LEADER(ch) ) { swap_leader2( ch ); } else if ( ch->pkill > leader[2]->kills && !IS_LEADER(ch)) { swap_leader3( ch ); } if ( ch->pdeath > leader[3]->deaths && !IS_FODDER(ch) ) { swap_death1( ch ); } else if ( ch->pdeath > leader[4]->deaths && !IS_FODDER(ch) ) { swap_death2( ch ); } else if ( ch->pdeath > leader[5]->deaths && !IS_FODDER(ch)) { swap_death3( ch ); } else return; save_leaders(); return; } void init_leaders( ) { int i = 0; for ( i = 0; i < 6; i++ ) { if (leader[i] == NULL) leader[i] = alloc_perm( sizeof(*leader[i]) ); } strcpy(leader[0]->name, "Sam"); leader[0]->kills = 0; leader[0]->deaths = 0; strcpy(leader[1]->name, "Sam"); leader[1]->kills = 0; leader[1]->deaths = 0; strcpy(leader[2]->name, "Sam"); leader[2]->kills = 0; leader[2]->deaths = 0; strcpy(leader[3]->name, "Sam"); leader[3]->kills = 0; leader[3]->deaths = 0; strcpy(leader[4]->name, "Sam"); leader[4]->kills = 0; leader[4]->deaths = 0; strcpy(leader[5]->name, "Sam"); leader[5]->kills = 0; leader[5]->deaths = 0; load_leaders(); } void load_leaders( ) { FILE *fp; if ((fp = fopen("leaders.dat","r")) == NULL) { bug("Creating leaders.dat",0); save_leaders(); return; } strcpy(leader[0]->name,fread_word(fp)); leader[0]->kills = fread_number(fp); leader[0]->deaths = fread_number(fp); strcpy(leader[1]->name,fread_word(fp)); leader[1]->kills = fread_number(fp); leader[1]->deaths = fread_number(fp); strcpy(leader[2]->name,fread_word(fp)); leader[2]->kills = fread_number(fp); leader[2]->deaths = fread_number(fp); strcpy(leader[3]->name,fread_word(fp)); leader[3]->kills = fread_number(fp); leader[3]->deaths = fread_number(fp); strcpy(leader[4]->name,fread_word(fp)); leader[4]->kills = fread_number(fp); leader[4]->deaths = fread_number(fp); strcpy(leader[5]->name,fread_word(fp)); leader[5]->kills = fread_number(fp); leader[5]->deaths = fread_number(fp); fclose( fp ); } void save_leaders() { FILE *fp; if ((fp = fopen("leaders.dat","w")) == NULL) { bug("Error saving to leaders.dat",0); return; } fprintf( fp, "%s %d %d\n",leader[0]->name,leader[0]->kills,leader[0]->deaths); fprintf( fp, "%s %d %d\n",leader[1]->name,leader[1]->kills,leader[1]->deaths); fprintf( fp, "%s %d %d\n",leader[2]->name,leader[2]->kills,leader[2]->deaths); fprintf( fp, "%s %d %d\n",leader[3]->name,leader[3]->kills,leader[3]->deaths); fprintf( fp, "%s %d %d\n",leader[4]->name,leader[4]->kills,leader[4]->deaths); fprintf( fp, "%s %d %d\n",leader[5]->name,leader[5]->kills,leader[5]->deaths); fclose( fp ); }