* Initialized "day" variable in npc.c. [Valaris]
* Added @whozeny. Shows list of top 50 online players and their zeny sorted from highest to lowest. [Valaris] * Added @happyhappyjoyjoy. Makes all players on server do a random emote. [Valaris] * Removed -fu git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@269 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
5f71054119
commit
e868e90267
@ -1,5 +1,10 @@
|
||||
Date Added
|
||||
11/20
|
||||
11/20
|
||||
* Initialized "day" variable in npc.c. [Valaris]
|
||||
* Added @whozeny. Shows list of top 50 online players and their zeny sorted from highest to lowest. [Valaris]
|
||||
* Added @happyhappyjoyjoy. Makes all players on server do a random emote. [Valaris]
|
||||
* Removed -funroll-loops from compile. (Do not re-add!) [Valaris]
|
||||
* Skill updates [celest]
|
||||
* Added check for max vending_max_value when reading config [kobra_k88]
|
||||
* Skill updates [celest]
|
||||
- Napalm vulcan, Enchant Deadly Poison, Slow Poison (based on jAthena 1066)
|
||||
|
2
Makefile
2
Makefile
@ -16,7 +16,7 @@ else
|
||||
MAKE = make
|
||||
endif
|
||||
|
||||
OPT = -g -O2 -ffast-math -funroll-loops
|
||||
OPT = -g -O2 -ffast-math
|
||||
|
||||
ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN)
|
||||
OS_TYPE = -DCYGWIN
|
||||
|
@ -119,6 +119,9 @@ mountpeco: 20
|
||||
who: 20
|
||||
whois: 20
|
||||
|
||||
// Returns list of top 50 logged in characters and their zeny based on zeny sorted from highest amount to lowest.
|
||||
whozeny: 20
|
||||
|
||||
// Returns list of logged in characters with their job.
|
||||
who2: 20
|
||||
|
||||
@ -291,6 +294,9 @@ useskill: 40
|
||||
// make another player killable
|
||||
charkillable: 40
|
||||
|
||||
// makes everyone on server do a random emote
|
||||
happyhappyjoyjoy:40
|
||||
|
||||
//---------------------
|
||||
// 50: Sub-GM+ commands
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
|
||||
|
||||
#include "../common/socket.h"
|
||||
#include "../common/timer.h"
|
||||
#include "../common/nullpo.h"
|
||||
@ -53,6 +54,8 @@ ATCOMMAND_FUNC(whomap);
|
||||
ATCOMMAND_FUNC(whomap2);
|
||||
ATCOMMAND_FUNC(whomap3);
|
||||
ATCOMMAND_FUNC(whogm); // by Yor
|
||||
ATCOMMAND_FUNC(whozeny); // [Valaris]
|
||||
ATCOMMAND_FUNC(happyhappyjoyjoy); // [Valaris]
|
||||
ATCOMMAND_FUNC(save);
|
||||
ATCOMMAND_FUNC(load);
|
||||
ATCOMMAND_FUNC(speed);
|
||||
@ -466,7 +469,8 @@ static AtCommandInfo atcommand_info[] = {
|
||||
{ AtCommand_ChangeSex, "@changesex", 1, atcommand_changesex }, // by MC Cameri
|
||||
{ AtCommand_Mute, "@mute", 99, atcommand_mute }, // [celest]
|
||||
{ AtCommand_Mute, "@red", 99, atcommand_mute }, // [celest]
|
||||
|
||||
{ AtCommand_WhoZeny, "@whozeny", 20, atcommand_whozeny }, // [Valaris]
|
||||
{ AtCommand_HappyHappyJoyJoy, "@happyhappyjoyjoy", 40, atcommand_happyhappyjoyjoy }, // [Valaris]
|
||||
#ifndef TXT_ONLY // sql-only commands
|
||||
{ AtCommand_CheckMail, "@checkmail", 1, atcommand_listmail }, // [Valaris]
|
||||
{ AtCommand_ListMail, "@listmail", 1, atcommand_listmail }, // [Valaris]
|
||||
@ -1596,6 +1600,91 @@ int atcommand_whogm(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int compare (const void * a, const void * b)
|
||||
{
|
||||
return ( *(int*)b - *(int*)a );
|
||||
}
|
||||
|
||||
int atcommand_whozeny(
|
||||
const int fd, struct map_session_data* sd,
|
||||
const char* command, const char* message)
|
||||
{
|
||||
char output[200];
|
||||
struct map_session_data *pl_sd;
|
||||
int i, j, count,c;
|
||||
char match_text[100];
|
||||
char player_name[24];
|
||||
int zeny[clif_countusers()];
|
||||
char counted[clif_countusers()];
|
||||
|
||||
memset(output, '\0', sizeof(output));
|
||||
memset(match_text, '\0', sizeof(match_text));
|
||||
memset(player_name, '\0', sizeof(player_name));
|
||||
|
||||
if (sscanf(message, "%99[^\n]", match_text) < 1)
|
||||
strcpy(match_text, "");
|
||||
for (j = 0; match_text[j]; j++)
|
||||
match_text[j] = tolower(match_text[j]);
|
||||
|
||||
count = 0;
|
||||
for (i = 0; i < fd_max; i++) {
|
||||
if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) {
|
||||
memcpy(player_name, pl_sd->status.name, 24);
|
||||
for (j = 0; player_name[j]; j++)
|
||||
player_name[j] = tolower(player_name[j]);
|
||||
if (strstr(player_name, match_text) != NULL) { // search with no case sensitive
|
||||
zeny[count]=pl_sd->status.zeny;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
qsort(zeny, count, sizeof(int), compare);
|
||||
for (c = 0; c < count && c < 50; c++) {
|
||||
if(!zeny[c])
|
||||
continue;
|
||||
for (i = 0; i < fd_max; i++) {
|
||||
if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && !counted[i] && zeny[c]) {
|
||||
if(pl_sd->status.zeny==zeny[c]) {
|
||||
sprintf(output, "Name: %s | Zeny: %d", pl_sd->status.name, pl_sd->status.zeny);
|
||||
clif_displaymessage(fd, output);
|
||||
zeny[c]=0;
|
||||
counted[i]=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
clif_displaymessage(fd, msg_table[28]); // No player found.
|
||||
else if (count == 1)
|
||||
clif_displaymessage(fd, msg_table[29]); // 1 player found.
|
||||
else {
|
||||
sprintf(output, msg_table[30], count); // %d players found.
|
||||
clif_displaymessage(fd, output);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int atcommand_happyhappyjoyjoy(
|
||||
const int fd, struct map_session_data* sd,
|
||||
const char* command, const char* message)
|
||||
{
|
||||
|
||||
struct map_session_data *pl_sd;
|
||||
int i,e;
|
||||
|
||||
for (i = 0; i < fd_max; i++) {
|
||||
if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) {
|
||||
e=rand()%40;
|
||||
clif_emotion(&pl_sd->bl,e);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
*
|
||||
*------------------------------------------
|
||||
|
@ -196,6 +196,8 @@ enum AtCommandType {
|
||||
AtCommand_UpTime,
|
||||
AtCommand_ChangeSex,
|
||||
AtCommand_Mute, // [celest]
|
||||
AtCommand_WhoZeny, // [Valaris]
|
||||
AtCommand_HappyHappyJoyJoy, // [Valaris]
|
||||
// SQL-only commands start
|
||||
#ifndef TXT_ONLY
|
||||
AtCommand_CheckMail, // [Valaris]
|
||||
|
@ -392,7 +392,7 @@ int npc_event_do_clock(int tid,unsigned int tick,int id,int data)
|
||||
time_t timer;
|
||||
struct tm *t;
|
||||
char buf[64];
|
||||
char *day;
|
||||
char *day="";
|
||||
int c=0;
|
||||
|
||||
time(&timer);
|
||||
|
Loading…
x
Reference in New Issue
Block a user