示例#1
0
文件: unit.c 项目: UweKopf/server
void name_unit(unit * u)
{
  if (u_race(u)->generate_name) {
    const char *gen_name = u_race(u)->generate_name(u);
    if (gen_name) {
      unit_setname(u, gen_name);
    } else {
      unit_setname(u, racename(u->faction->locale, u, u_race(u)));
    }
  } else {
    char name[32];
    const char * result;
    const struct locale * lang = u->faction ? u->faction->locale : default_locale;
    if (lang) {
      static const char * prefix[MAXLOCALES];
      int i = locale_index(lang);
      if (!prefix[i]) {
        prefix[i] = LOC(lang, "unitdefault");
        if (!prefix[i]) {
          prefix[i] = parameters[P_UNIT];
        }
      }
      result = prefix[i];
    } else {
      result = parameters[P_UNIT];
    }
    strlcpy(name, result, sizeof(name));
    strlcat(name, " ", sizeof(name));
    strlcat(name, itoa36(u->no), sizeof(name));
    unit_setname(u, name);
  }
}
示例#2
0
文件: info.c 项目: dylanyaga/openMerc
static void who(void)
{
	int n, shown = 0;

	printf("<b>Active Players</b><br><br>\n");

	printf("<table cellpadding=0 cellspacing=0 border=0>\n");
	printf("<tr><td>Name &nbsp; &nbsp;</td><td>Race &nbsp; &nbsp;</td><td>Rank &nbsp; &nbsp;</td><td>Active</td></tr>\n");
	printf("<tr><td colspan=4><hr></td></tr>");

	for (n = 1; n<MAXCHARS && shown<50; n++)
	{
		if (ch[n].used!=USE_ACTIVE)
		{
			continue;
		}
		if (!(ch[n].flags & (CF_PLAYER)))
		{
			continue;
		}
		if (ch[n].flags & (CF_INVISIBLE | CF_NOLIST | CF_NOWHO))
		{
			continue;
		}

		printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s</td></tr>\n",
		       n, ch[n].name, racename(ch[n].kindred), rank(ch[n].points_tot), (ch[n].used==USE_ACTIVE ? "Yes" : "No"));
		shown++;
	}
	if (shown==0)
	{
		printf("<tr><td colspan=4>No players active</td></tr>\n");
	}
	printf("</table><br>\n");
}
示例#3
0
文件: info.c 项目: dylanyaga/openMerc
static void top(void)
{
	int n, m;
	int b[25], nr[25];

	for (m = 0; m<25; m++)
	{
		b[m]  = -1;
		nr[m] = -1;
	}

	printf("<b>Top Characters</b><br><br>\n");
	for (n = 1; n<MAXCHARS; n++)
	{
		if (ch[n].used==USE_EMPTY)
		{
			continue;
		}
		if (!(ch[n].flags & (CF_PLAYER)))
		{
			continue;
		}
		if (ch[n].flags & (CF_GOD | CF_NOLIST))
		{
			continue;
		}

		for (m = 0; m<25; m++)
		{
			if (ch[n].points_tot>b[m])
			{
				if (m<24)
				{
					memmove(&b[m + 1], &b[m], (24 - m) * sizeof(int));
					memmove(&nr[m + 1], &nr[m], (24 - m) * sizeof(int));
				}
				b[m]  = ch[n].points_tot;
				nr[m] = n;
				break;
			}
		}
	}

	printf("<table cellpadding=0 cellspacing=0 border=0>\n");
	printf("<tr><td>Name &nbsp; &nbsp;</td><td>Race &nbsp; &nbsp;</td><td>Rank &nbsp; &nbsp;</td><td>Active</td></tr>\n");
	printf("<tr><td colspan=4><hr></td></tr>");
	for (m = 0; m<25; m++)
	{
		if (nr[m]==-1)
		{
			continue;
		}
		printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s</td></tr>\n",
		       nr[m], ch[nr[m]].name, racename(ch[nr[m]].kindred), rank(ch[nr[m]].points_tot),
		       (ch[nr[m]].used==USE_ACTIVE && !(ch[nr[m]].flags & CF_INVISIBLE) ? "Yes" : "No"));
	}
	printf("</table><br>\n");
}
示例#4
0
文件: info.c 项目: dylanyaga/openMerc
static void staff(void)
{
	int n, shown = 0;

	printf("<b>Ye Staff</b><br><br>\n");

	printf("<table cellpadding=0 cellspacing=0 border=0>\n");
	printf("<tr><td>Name &nbsp; &nbsp;</td><td>Race &nbsp; &nbsp;</td><td>Rank &nbsp; &nbsp;</td><td>Active</td></tr>\n");
	printf("<tr><td colspan=4><hr></td></tr>");

	for (n = 1; n<MAXCHARS && shown<50; n++)
	{
		if (ch[n].used==USE_EMPTY)
		{
			continue;
		}
		if (!(ch[n].flags & (CF_PLAYER)))
		{
			continue;
		}
		if (ch[n].flags & CF_GOD)
		{
			continue;
		}
		if (!(ch[n].flags & CF_STAFF))
		{
			continue;
		}

		printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s</td></tr>\n",
		       n, ch[n].name, racename(ch[n].kindred), rank(ch[n].points_tot),
		       (ch[n].used==USE_ACTIVE && !(ch[n].flags & CF_INVISIBLE) ? "Yes" : "No"));
		shown++;
	}
	if (shown==0)
	{
		printf("<tr><td colspan=4>No staffers yet.</td></tr>\n");
	}
	printf("</table><br>\n");
}
示例#5
0
文件: info.c 项目: dylanyaga/openMerc
static void xtop(int srank)
{
	int n, m;
	int b[25], nr[25];
	int ppm[MAXCHARS];

	for (m = 1; m<MAXCHARS; m++)
	{
		ppm[m] = (ch[m].points_tot + 1) / ((ch[m].total_online_time / TICKS / 60) + 1);
	}

	for (m = 0; m<25; m++)
	{
		b[m]  = -1;
		nr[m] = -1;
	}

	printf("<b>Top Characters</b><br><br>\n");
	for (n = 1; n<MAXCHARS; n++)
	{
		if (ch[n].used==USE_EMPTY)
		{
			continue;
		}
		if (!(ch[n].flags & (CF_PLAYER)))
		{
			continue;
		}
		if (ch[n].flags & (CF_GOD | CF_NOLIST))
		{
			continue;
		}
		if (srank && points2rank(ch[n].points_tot)!=srank)
		{
			continue;
		}

		for (m = 0; m<25; m++)
		{
			if (ppm[n]>b[m])
			{
				if (m<24)
				{
					memmove(&b[m + 1], &b[m], (24 - m) * sizeof(int));
					memmove(&nr[m + 1], &nr[m], (24 - m) * sizeof(int));
				}
				b[m]  = ppm[n];
				nr[m] = n;
				break;
			}
		}
	}

	printf("<table cellpadding=0 cellspacing=0 border=0>\n");
	printf("<tr><td>Name &nbsp; &nbsp;</td><td>Race &nbsp; &nbsp;</td><td>Rank &nbsp; &nbsp;</td><td>Active &nbsp; &nbsp; </td><td>PPM</td></tr>\n");
	printf("<tr><td colspan=5><hr></td></tr>");
	for (m = 0; m<25; m++)
	{
		if (nr[m]==-1)
		{
			continue;
		}
		printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%s &nbsp; &nbsp; </td><td>%d</td></tr>\n",
		       nr[m], ch[nr[m]].name, racename(ch[nr[m]].kindred), rank(ch[nr[m]].points_tot),
		       (ch[nr[m]].used==USE_ACTIVE && !(ch[nr[m]].flags & CF_INVISIBLE) ? "Yes" : "No"), ppm[nr[m]]);
	}
	printf("</table><br>\n");
}