All pastes #607669 Raw Edit

echo

public text v1 · immutable
·published 2007-07-07 20:30 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[]);

new AdminChan[256] = "%#grove";
new VIPChan[256] = "+#coldthugz.echo";
new channele[256] = "#coldthugz.echo";
new botname[256] = "Thug";
new botpass[256] = "sanandreas";

// 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, botname, botpass);
	print("---- thug connected to IRC ----");
}

// This gets executed once you have connected to a channel
public ircOnConnect()
{
	ircJoinChan("#coldthugz 2522");
	ircJoinChan("#grove");
	ircJoinChan("#coldthugz.echo 2522");
	ircSay("#coldthugz.echo", "4ColdThugZ Beta Pwnage 2Training Server 3.1 Loaded!");
	ircSay("#coldthugz","2The ColdThugZ 4 Server is now 7Online!");
	ircSay("#grove","2Sup Leaders! 4 Teh Server is now online! ");
	print("---- botozj connected to the channels ----");
}



// 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), "%s on IRC: %s", user, tmp);
		new ircmessage[64];
		format(ircmessage, sizeof(ircmessage), "7[IRC]3 %s:1 %s", user, tmp);
		SendClientMessageToAll(0x00FFFFFF, strmessage);
		ircSay(channel, ircmessage);
	    ircSay(#grove, 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* Administrator on IRC:1 %s", tmp);
		ircSay(channel, strmessage);
 	    ircSay(#grove, 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);
 	    ircSay(#grove, 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);
	    ircSay(#grove, strmessage);
		new rconmsg[64];
		format(rconmsg, sizeof(rconmsg), "changemode %s", tmp);
		SendRconCommand(rconmsg);
	}

	if (strcmp("!restartirc", cmd, true, 11) == 0)
	{
	    ircSay(channel, "2IRC Script Restarted.");
	    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),"7%s (ID:%d) has joined the server!1",connectname,playerid);
	ircSay(channele,msg);
	ircSay(#grove,msg);
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new dconnectname[256];
	GetPlayerName(playerid, dconnectname, 256);
	new msg[256];
	format(msg, sizeof(msg),"7%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);
	ircSay(#grove,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(#coldthugz.echo, textx);
    ircSay(#grove, 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("%#grove", 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(AdminChan, 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(VIPChan, 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(AdminChan, 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(VIPChan, vfmsg);
}

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

#pragma unused ret_memcpy