All pastes #607251 Raw Edit

Something

public text v1 · immutable
·published 2007-07-07 13:39 UTC
rendered paste body
#include <a_samp>
#include <dutils>
#include <a_irc>

// IRC Example script
// by Jacob

forward main();
forward adminmsg(playerid, msg[]);
forward vipmsg(playerid, msg[]);

// IRC CODE 
/*		0 white          8 yellow

		1 black          9 lightgreen

		2 blue          10 cyan

		3 green         11 lightcyan

		4 lightred      12 lightblue

		5 brown         13 pink

		6 purple        14 grey

		7 orange        15 lightgrey
*/



public main()
{
	ircConnect("irc.gtanet.com", 6667, "botozj", "123456");
	print("---- botozj connected to IRC ----");
}

// This gets executed once you have connected to a channel
public ircOnConnect()
{
	ircJoinChan("#tomozj.echo");
	ircJoinChan("#tomozj");
	ircJoinChan("#botozj");
	ircSay("#tomozj.echo", "4---- tomozj's Pad Server Initiated ----");
	print("---- botozj connected to the channels ----");
}

new channele[256] = "#tomozj.echo";

// This gets executed when someone says something in a channel you are in.
public ircOnUserSay(channel[], user[], message[])
{
//	new msg[112];
	new cmd[256]; new idx;
//	format(msg,sizeof(msg), "[IRC] %s: %s", channel, user, message);
//	SendClientMessageToAll(0xFFFFFFFF, msg);


	cmd = strtok(message, idx);

	if (message[0] != '!') return 1;

	if (strcmp("!msg", cmd, true, 10) == 0)
	{
		new tmp[256];
		strmid(tmp, message, 5, strlen(message));
		new strmessage[64];
		format(strmessage, sizeof(strmessage), "[IRC] %s: %s", user, tmp);
		new ircmessage[64];
		format(ircmessage, sizeof(ircmessage), "7[IRC]3 %s:1 %s", user, tmp);
		SendClientMessageToAll(0xFFFFFFFF, strmessage);
		ircSay(channel, ircmessage);
	}

	if (strcmp("!vip", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 5, strlen(message));
		vipmsgirc(user, tmp);
	}

	if(!ircIsOp(channel,user)) return 1;

	if (strcmp("!kill", message, true, 10) == 0) // Allows players to kill you from IRC by typing ".kill"!
	{
	    new tmp[256];
	    tmp = strtok(message, idx);
		if(!IsPlayerConnected(strval(tmp))){ ircSay(channel, "ERROR: Invalid playerid!"); return 1; }
		else {
	        new strhealth[32];
			SetPlayerHealth(strval(tmp), 0.0);
			new playername[256];
			GetPlayerName(strval(tmp), playername, 256);
			format(strhealth, sizeof(strhealth), "%s (ID:%d) has been killed.", playername, strval(tmp));
			ircSay(channel, strhealth);
		}
	}

	if (strcmp("!say", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 5, strlen(message));
		new strmessage[64];
		format(strmessage, sizeof(strmessage), "2* Admin:1 %s", tmp);
		ircSay(channel, strmessage);
		new rconmsg[64];
		format(rconmsg, sizeof(rconmsg), "say %s", tmp);
		SendRconCommand(rconmsg);
	}
	
/*	if (strcmp("!pm", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 4, strlen(message));
		new message
		new strmessage[64];
		format(strmessage, sizeof(strmessage), "2PM From %s (IRC) to %s (ID: %d)", user, GetPlayerName(tmptmp);
		ircSay(channel, strmessage);
		new rconmsg[64];
		format(rconmsg, sizeof(rconmsg), "%s", tmp);
		SendRconCommand(rconmsg);
	}*/

	if (strcmp("!admin", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 7, strlen(message));
		adminmsgirc(user, tmp);
	}

	if (strcmp("!vip", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 5, strlen(message));
		vipmsgirc(user, tmp);
	}

	if (strcmp("!raw", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 5, strlen(message));
		new strmessage[64];
		format(strmessage, sizeof(strmessage), "2Raw command sent.", tmp);
		ircSay(channel, strmessage);
		new rconmsg[64];
		format(rconmsg, sizeof(rconmsg), "%s", tmp);
		SendRconCommand(rconmsg);
	}

	if (strcmp("!changemode", cmd, true, 10) == 0)
	{
	    new tmp[256];
		strmid(tmp, message, 12, strlen(message));
		new strmessage[64];
		format(strmessage, sizeof(strmessage), "2Gamemode changed to %s (if it exists)", tmp);
		ircSay(channel, strmessage);
		new rconmsg[64];
		format(rconmsg, sizeof(rconmsg), "changemode %s", tmp);
		SendRconCommand(rconmsg);
	}

	if (strcmp("!restartirc", cmd, true, 11) == 0)
	{
	    SendRconCommand("unloadfs irc");
	    SendRconCommand("loadfs irc");
	}


	return 1;

}

// This gets executed when someone parts a channel you are in.
public ircOnUserPart(channel[], user[])
{
//	new msg[112];
//	format(msg,sizeof(msg), "[%s] %s left the channel.", channel, user);
//	SendClientMessageToAll(0xFFFFFFFF, msg);
	return 1;
}

// This gets executed when someone joins a channel you are in.
public ircOnUserJoin(channel[], user[])
{
//	new msg[112];
//	format(msg,sizeof(msg), "[%s] %s joined the channel.", channel, user);
//	SendClientMessageToAll(0xFFFFFFFF, msg);
//	return 1;
}


public OnFilterScriptInit()
{
	print("---- IRC Echo Initiated ----");
	main();
	return 1;
}



public OnPlayerConnect(playerid)
{
	new connectname[256];
	GetPlayerName(playerid, connectname, 256);
	new msg[256];
	format(msg, sizeof(msg),"14%s (ID:%d) has joined the server!1",connectname,playerid);
	ircSay(channele,msg);
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new dconnectname[256];
	GetPlayerName(playerid, dconnectname, 256);
	new msg[256];
	format(msg, sizeof(msg),"14%s has left the server!1",dconnectname);
	ircSay(channele,msg);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	new msg[256];
	format(msg, sizeof(msg),"4%s has died.1",name(playerid));
	ircSay(channele,msg);
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{

	if(text[0] == '@')
	{
 		new tmp[256];
		strmid(tmp, text, 1, strlen(text));
		adminmsg(playerid, tmp);
		return 0;
	}

	if(text[0] == '!')
	{
 		new tmp[256];
		strmid(tmp, text, 1, strlen(text));
		vipmsg(playerid, tmp);
		return 0;
	}

	new textx[256];
	format(textx, sizeof(textx),"[%d]3 %s:1 %s",playerid,name(playerid),text);
	ircSay(channele, textx);

	return 1;
}

public OnPlayerPrivmsg(playerid, recieverid, text[])
{
	new textx[256];
	format(textx, sizeof(textx),"7PM:3 %s[%d] to %s[%d]:1 %s",name(playerid),playerid,name(recieverid),recieverid,text);
	ircSay("%#tomozj.echo", textx);
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new idx;
	new command[256];
	command = strtok(cmdtext, idx);

	if(!IsPlayerAdmin(playerid)) return 0; // admin point from here on

	if (strcmp("/closeirc", command, true, 10) == 0)
	{
	    ircDisconnect();
		return 1;
	}

	if (strcmp("/openirc", command, true, 10) == 0)
	{
	    SendRconCommand("unloadfs irc");
	    SendRconCommand("loadfs irc");
		return 1;
	}

/*	if(strcmp("/help", command, true, 1) == 0)
	{
		SendClientMessage(playerid,0xDC143CFF,"@ to talk to admins. % to talk to VIPs.");
		return 1;
	}*/

	return 0;
}



public OnRconCommand(cmd[])
{
	return 1;
}


public adminmsg(playerid,msg[])
{
	new gmsg[256];
	format(gmsg,sizeof(gmsg),"Admin Message from %s (ID:%d): %s", name(playerid), playerid, msg);

	new fmsg[256];
	format(fmsg,sizeof(fmsg),"7Admin Message from %s (ID:%d):1 %s", name(playerid), playerid, msg);

	for(new i=0; i < 32; i++)
	{
		if(IsPlayerAdmin(i))
		{
			SendClientMessage(i, 0xFFFF00FF, gmsg);
		}
	}
	
	if(!IsPlayerAdmin(playerid)) SendClientMessage(playerid, 0xFFFF00FF, "Your message has been sent to online admins!");
	
	ircSay("%#tomozj.echo", fmsg);
}

public vipmsg(playerid,msg[])
{
	new vgmsg[256];
	format(vgmsg,sizeof(vgmsg),"VIP Message from %s (ID:%d): %s", name(playerid), playerid, msg);

	new vfmsg[256];
	format(vfmsg,sizeof(vfmsg),"10VIP Message from %s (ID:%d):1 %s", name(playerid), playerid, msg);


	for(new i=0; i < 32; i++)
	{
		if(IsPlayerAdmin(i))
		{
			SendClientMessage(i, 0xFF8C13FF, vgmsg);
		}
	}
	
	if(!IsPlayerAdmin(playerid)) SendClientMessage(playerid, 0xFF8C13FF, "Your message has been sent to online VIPs!");

	ircSay("+#tomozj.echo", vfmsg);
}

adminmsgirc(name[], msg[])
{

	new gmsg[256];
	format(gmsg,sizeof(gmsg),"Admin Message from %s (IRC): %s", name, msg);

	new fmsg[256];
	format(fmsg,sizeof(fmsg),"7Admin Message from %s (IRC):1 %s", name, msg);

	for(new i=0; i < 32; i++)
	{
		if(IsPlayerAdmin(i))
		{
			SendClientMessage(i, 0xFFFF00FF, gmsg);
		}
	}

	ircSay("%#tomozj.echo", fmsg);
}

vipmsgirc(name[], msg[])
{

	new vgmsg[256];
	format(vgmsg,sizeof(vgmsg),"VIP Message from %s (IRC): %s", name, msg);

	new vfmsg[256];
	format(vfmsg,sizeof(vfmsg),"10VIP Message from %s (IRC):1 %s", name, msg);

	for(new i=0; i < 32; i++)
	{
		if(IsPlayerAdmin(i))
		{
			SendClientMessage(i, 0xFF8C13FF, vgmsg);
		}

	}

	ircSay("+#tomozj.echo", vfmsg);
}

stock name(playerid)
{
	new namer[256];
	GetPlayerName(playerid, namer, sizeof(namer));
	return namer;
}

#pragma unused ret_memcpy