// Oxxy (C) 2015, HPM plugin.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../common/HPMi.h"
#include "../common/malloc.h"
#include "../common/mmo.h"
#include "../common/socket.h"
#include "../common/strlib.h"
#include "../map/clif.h"
#include "../map/script.h"
#include "../map/pc.h"
#include "../common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) */
HPExport struct hplugin_info pinfo = {
"Chat Color", // Plugin name
SERVER_TYPE_MAP,// Which server types this plugin works with?
"0.1", // Plugin version
HPM_VERSION, // HPM Version (don't change, macro is automatically updated)
};
/*ACMD(color) {
if(!message || !*message) {
clif->message(fd, "Usage: @color <color>");
clif->message(fd, "<color> must be in hex format. Starting with 0x");
clif->message(fd, "Example: @color 0x00FF00");
if(pc_readglobalreg_str(sd,script->add_str("CHAT_COLOR$")) = "") {
clif->message(fd, "Defaulting your color to green.");
pc_setglobalreg_str(sd, script->add_str("CHAT_COLOR$"), "0x000000");
return 1;
}
return -1;
} else {
pc_setglobalreg_str(sd, script->add_str("CHAT_COLOR$"), message);
clif->message(fd, "Color has been set.");
}
return 1;
}*/
ACMD(setcolor) {
unsigned char k;
unsigned short msg_len = 1;
char mout[40];
if( !message || !*message ) {
clif->message(fd, "Usage: @setcolor <color>");
clif->message(fd, "<color> must be in hex format. Starting with 0x");
clif->message(fd, "Example: @color 0x00FF00");
if(pc_readglobalreg_str(sd,script->add_str("CHAT_COLOR$")) = "") {
clif->message(fd, "Defaulting your color to green.");
sd->fontcolor = 0;
return 1;
}
}
if( message[0] == '0' ) {
sd->fontcolor = 0;
return true;
}
sd->fontcolor = pc_readglobalreg_str(*sd, script->add_str("CHAT_COLOR$"));
msg_len += sprintf(mout, "Color changed to '%s'", script->add_str(CHAT_COLOR$));
WFIFOHEAD(*fd,msg_len + 12);
WFIFOW(*fd,0) = 0x2C1;
WFIFOW(*fd,2) = msg_len + 12;
WFIFOL(*fd,4) = 0;
WFIFOL(*fd,8) = channel->config->colors[k];
safestrncpy((char*)WFIFOP(fd,12), mout, msg_len);
WFIFOSET(*fd, msg_len + 12);
return true;
}
HPExport void plugin_init (void) {
char *server_type;
char *server_name;
/* core vars */
iMalloc = GET_SYMBOL("iMalloc");
script = GET_SYMBOL("script");
clif = GET_SYMBOL("clif");
pc = GET_SYMBOL("pc");
addAtcommand("setcolor", color);
//addScriptCommand("color","is",color)
}
HPExport void server_online (void) {
ShowInfo ("'%s' Plugin by Oxxy. Version '%s'\n",pinfo.name,pinfo.version);
}