09-23-2017, 11:05 PM
Adding IRC to the gamemode
We will:
* The Plugin and Include File (http://forum.sa-mp.com/showthread.php?t=98803)
* My Own IRC System (http://forum.sa-mp.com/showthread.php?t=615893) - Ultraz IRC System
Let's Get Started!
At the includes part you'll add this to include the irc in the script
Now to contain the bots
This will be the name of your bot so when any guest joins your irc channel will find the bot with this name
This for the first bot too, when the guest click on 'who is' or use /whois command on irc will get these info
[Important] Now lets set up the connection of irc network,channel,etc.
First we must register the channel we want in any network (I prefer pool.irc.tl [irc.tl] )
You'll go to the channel you want then login/identify with your nickname then use the command of:
/cs register #yourchannel it will give you the owner rank on IRC
Lets end defines part
You can connect 5 bots in the IRC Channel, but my opinion to make them 2 only, even if you have 100+ players in your samp server 2 bots will be enough
Codes of connecting Bots
This is getting the bots id and grouping them, in our case only 1 bot, gBot is for ex. I used it on Ultraz IRC System.
OnFilterScriptInit if filterscript, if in gamemode will be OnGameModeInit
This is will connect the IRC Bots to the network,channel we defined above
Now this is the delay, It will connect the several bots and giving your server time to load all the codes of the IRC Script, 20 is the seconds for Ex.
Okay, here the OnPlayerConnect partition, when player connected it'll send message (%s has connected to the server).
Here the OnPlayerText part, it'll echo when player talk or send messages to the main chat
Some Callbacks which will be important for the IRC Script
These callbacks is already in the IRC include.
!msg command
Ok, I made many commands in my own IRC System which it's Link is mentioned above, I made their many commands, I'll show example of how to make 1 of them like (!msg to speak from IRC to game)
More tutorials is coming soon, I just made small & short one to help people, any question reply down or PM me.
We will:
* The Plugin and Include File (http://forum.sa-mp.com/showthread.php?t=98803)
* My Own IRC System (http://forum.sa-mp.com/showthread.php?t=615893) - Ultraz IRC System
Let's Get Started!
At the includes part you'll add this to include the irc in the script
Code: (Select All)
#include <irc>
Now to contain the bots
This will be the name of your bot so when any guest joins your irc channel will find the bot with this name
Code: (Select All)
#define BOT_1_NICKNAME "1stBot"
This for the first bot too, when the guest click on 'who is' or use /whois command on irc will get these info
Code: (Select All)
#define BOT_1_REALNAME "My 1st Bot"
#define BOT_1_USERNAME "1stBOT"
[Important] Now lets set up the connection of irc network,channel,etc.
First we must register the channel we want in any network (I prefer pool.irc.tl [irc.tl] )
You'll go to the channel you want then login/identify with your nickname then use the command of:
/cs register #yourchannel it will give you the owner rank on IRC
Code: (Select All)
#define IRC_SERVER "pool.irc.tl"
#define IRC_PORT (6667) // default port of most of IRC Networks
#define IRC_CHANNEL "#yourchannel"
Lets end defines part
You can connect 5 bots in the IRC Channel, but my opinion to make them 2 only, even if you have 100+ players in your samp server 2 bots will be enough
Code: (Select All)
#define MAX_BOTS (1)
Codes of connecting Bots
This is getting the bots id and grouping them, in our case only 1 bot, gBot is for ex. I used it on Ultraz IRC System.
Code: (Select All)
new gBotID[MAX_BOTS], gGroupID;
OnFilterScriptInit if filterscript, if in gamemode will be OnGameModeInit
Code: (Select All)
public OnFilterScriptInit() // If filterscript
{
gBotID[0] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_1_NICKNAME, BOT_1_REALNAME, BOT_1_USERNAME);
IRC_SetIntData(gBotID[0], E_IRC_CONNECT_DELAY, 20);
return 1;
}
Code: (Select All)
gBotID[0] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_1_NICKNAME, BOT_1_REALNAME, BOT_1_USERNAME);
Now this is the delay, It will connect the several bots and giving your server time to load all the codes of the IRC Script, 20 is the seconds for Ex.
Code: (Select All)
IRC_SetIntData(gBotID[0], E_IRC_CONNECT_DELAY, [color=red]20[/color]);
Okay, here the OnPlayerConnect partition, when player connected it'll send message (%s has connected to the server).
Code: (Select All)
public OnPlayerConnect(playerid)
{
new joinMsg[128], name[MAX_PLAYER_NAME]; //here we are creating a local variable for getting the players name
GetPlayerName(playerid, name, sizeof(name));
format(joinMsg, sizeof(joinMsg), "02[%d] 03*** %s has connected to the server.", playerid, name);
IRC_GroupSay(gGroupID, IRC_CHANNEL, joinMsg); //joing the player to the channel that we defined!
return 1;
}
Here the OnPlayerText part, it'll echo when player talk or send messages to the main chat
Code: (Select All)
public OnPlayerText(playerid, text[])
{
new name[MAX_PLAYER_NAME], ircMsg[256]; Again creating a local Variable for name!
GetPlayerName(playerid, name, sizeof(name)); //getting the players name.
format(ircMsg, sizeof(ircMsg), "02[%d] 07%s: %s", playerid, name, text); //creating the message
IRC_GroupSay(gGroupID, IRC_CHANNEL, ircMsg);
//rest of your OnPlayerText Here!
return 1;
}
These callbacks is already in the IRC include.
Code: (Select All)
public IRC_OnConnect(botid, ip[], port)
{
printf("*** IRC_OnConnect: Bot ID %d connected to %s:%d", botid, ip, port);
return 1;
}
!msg command
Ok, I made many commands in my own IRC System which it's Link is mentioned above, I made their many commands, I'll show example of how to make 1 of them like (!msg to speak from IRC to game)
Code: (Select All)
IRCCMD:msg(botid, channel[], user[], host[], params[]) //making the command, in this case "say"
{
// It's for Voice only (+v) who can use the !msg command (voice people by /voice <nickname>)
if (IRC_IsVoice(botid, channel, user))
{
// This for checking if the guest/voiced person typed a text or just typed "!msg"
if (!isnull(params))
{
new msg[128];
format(msg, sizeof(msg), "02*** %s on IRC: %s", user, params);
IRC_GroupSay(gGroupID, channel, msg);
format(msg, sizeof(msg), "*** %s on IRC: %s", user, params);
SendClientMessageToAll(0x0000FFFF, msg);//you can change colors here
}
}
return 1;
}
More tutorials is coming soon, I just made small & short one to help people, any question reply down or PM me.
- Thanks to Post4VPS & Host4Fun for the amazing VPS 1 -