/* [WHO]Them's score publisher, this is designed to be a clone of spudbot */
 
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>
 
#define ACCESS_LOGD 131072
#define PUBLISH_EVERY_ROUND 1
#define RESPOND_TO_SAY 1
 
 
new STRING_VERSION[MAX_DATA_LENGTH] = "v1.0";
new currentctscore = 0;
new currentterrorscore = 0;
 
public logd_scorepublish(HLCommand,HLData,HLUserName,UserIndex)
{
	new Params[MAX_DATA_LENGTH];
	convert_string(HLData,Params,MAX_DATA_LENGTH);
 
	new Data1[MAX_DATA_LENGTH];				//team
	new Data2[MAX_DATA_LENGTH];				//action
	strbreak(Params,Data1,Data2,MAX_DATA_LENGTH);
	if(strmatch(Data2, "CTs_Win", strlen("CTs_Win")) || strmatch(Data2, "Terrorists_Win", strlen("Terrorists_Win"))) {
		new scores[MAX_DATA_LENGTH];
		new ctscore[MAX_DATA_LENGTH];
		new terrorscore[MAX_DATA_LENGTH];
		new useless[MAX_DATA_LENGTH];
		new numstring[MAX_DATA_LENGTH];
		new messageout[MAX_DATA_LENGTH];
		new x=0;
		strbreak(Data2, useless, scores, MAX_DATA_LENGTH);
		strbreak(scores, ctscore, terrorscore, MAX_DATA_LENGTH);
		new i=0;
		new i2=0;
		for(i=0; i < strlen(ctscore) && ctscore[i]!='#';i=i+1) x = x + 1;
		i=i+1;
		for(i2=0; (i + i2) < strlen(ctscore); i2++) {
			numstring[i2] = ctscore[i+i2];
		}
		currentctscore = strtonum(numstring);
		for(i=0; i < strlen(terrorscore) && terrorscore[i]!='#';i=i+1) x = x + 1;
		i=i+1;
		for(i2=0; (i + i2) < strlen(terrorscore); i2++) {
			numstring[i2] = terrorscore[i+i2];
		}
		currentterrorscore = strtonum(numstring);
#if PUBLISH_EVERY_ROUND==1
		strcpy(messageout, "Terrorists ", MAX_DATA_LENGTH);
		numtostr(currentterrorscore, terrorscore);
		strcat(messageout, terrorscore, MAX_DATA_LENGTH);
		strcat(messageout, " -- Counter-Terrorists ", MAX_DATA_LENGTH);
		numtostr(currentctscore, ctscore);
		strcat(messageout, ctscore, MAX_DATA_LENGTH);
		strcat(messageout, ".", MAX_DATA_LENGTH);
		typesay(messageout,10,250,250,10);
#endif
	}
	return PLUGIN_CONTINUE;
}
 
#if RESPOND_TO_SAY==1
public logd_requestpublish(HLCommand,HLData,HLUserName,UserIndex) {
	new data[MAX_DATA_LENGTH];
	convert_string(HLData,data,MAX_DATA_LENGTH);
	if(streq(data, "score")) {
		new ctscore[MAX_DATA_LENGTH];
		new terrorscore[MAX_DATA_LENGTH];
		new messageout[MAX_DATA_LENGTH];
		strcpy(messageout, "Terrorists ", MAX_DATA_LENGTH);
		numtostr(currentterrorscore, terrorscore);
		strcat(messageout, terrorscore, MAX_DATA_LENGTH);
		strcat(messageout, " -- Counter-Terrorists ", MAX_DATA_LENGTH);
		numtostr(currentctscore, ctscore);
		strcat(messageout, ctscore, MAX_DATA_LENGTH);
		strcat(messageout, ".", MAX_DATA_LENGTH);
		typesay(messageout,10,250,250,10);
	}
	return PLUGIN_CONTINUE;
}
#endif
 
 
public plugin_init() {
	plugin_registerinfo("Score Publisher","Publishes Counter-Strike scores to the server.",STRING_VERSION);
	plugin_registercmd("logd_teamaction", "logd_scorepublish", ACCESS_LOGD, "");
#if RESPOND_TO_SAY==1
	plugin_registercmd("say", "logd_requestpublish", ACCESS_ALL, "score : publishes the current score");
	plugin_registercmd("say_team", "logd_requestpublish", ACCESS_ALL, "score : publishes the current score");
#endif
 
	exec( "logd_reg 61 admin_command logd_teamaction" );
 
	return PLUGIN_CONTINUE;
}