Home arrow UrT0 Bot

[NG] Map

[NG] Search


 

[NG] Login





[NG] Connected

Abbiamo 2 visitatori online

[NG] Server Status

[NG] AdSense

Mandingo 2.0 E-mail

Index

 

1) Installation



1.1) Dependencies Resolution

Mandingo installation could be quite difficult without a Linux OS background. For this reason i’ll describe different methods.

Mandingo is perl based, then you need perl 5.8 (or greater) installed in your system.

 

1.1.1) Lazy Way

If you’r too lazy to follow a normal installation procedure, to trick around dependencies resolving issues, you have to do ... absolutely nothing!!

Every Mandingo package will be shipped with a precompiled (statically linked) binary version called UrTBot. You’ve simply to execute it and enjoy your game!

 

1.1.2) CPAN Way

This is the difficult way to install Mandingo and all needed dependencies. This steps are intended for those who already have a perl environment background, then do this only if you alredy know what you’r doing!

According to your distribution you need to install complete develop suite (gcc, cpp, make, bison) before to proceed (it’s suggested to execute following steps by root user account).



Start CPAN perl interface typing:

 

bash:# perl –MCPAN –e shell



This command should returns the following prompt:

 

cpan>



Now you’r ready to begin install your dependencies:

 

cpan> install File::Tail

cpan> install Config::Simple

cpan> install Geo::IP

cpan> install DBI

cpan> install HTTP::Daemon

cpan> install Digest::SHA1

cpan> install Net::IRC



After that, if all dependencies compilation goes fine, you should to execute Mandingo without problem.

 

1.1.3) Debian Way

All users that own a Debian Distro (or Debian forked like *Ubuntu, gOS, Ultimate, Damn Small Linux, Knoppix and so on) should follow this steps



To met all dependencies type:

bash:# apt-get install libdbi-perl libfile-tail-perl libconfig-simple-perl libgeo-ip-perl libdigest-sha1-perl libnet-irc-perl libdbd-mysql-perl libnet-ssleay-perl libcrypt-ssleay-perl libhttp-daemon-ssl-perl



N.B.: *Ubuntu users have to prepend sudo to correctly execute the command and take care Universe/Multiverse repository are correctly enabled.

 

1.2) Mandingo Package

Get the latest UrT0 aka Mandingo Package from the official portal:



http://urbanterror.techfusion.it



Uncompress it:

bash:# tar jxpvf UrT0-Mandingo-<release_date>.tar.bz2

A folder called Mandingo-Shared will be created (move this folder everywhere you wish).

Chdir to the base directory:

bash:# cd Mandingo-Shared

At this point you sould to configure Mandingo according your Urban Terror Server settings by editing urtoconfig.cfg (using your preferred text editor):

bash:# vi urtoconfig.cfg

urtoconfig.cfg is a very verbose (well commented) configuration file. You shouldn't have particular problem to understand it (pay attention, wrong value may compromise Mandingo functionality).

1.3) Urban Terror Server Settings Tuning

For a full log players hits description (head, arms, legs, torso, etc etc) you must increase log hits verbosity by setting CVAR as described below:

seta g_loghits "1"

Urban Terror server engine bufferize log file by default. If you would to run Mandingo we need unbuffered logs:

seta g_logsync "1"

Then we have to instruct our Urban Terror Server where to write log file (according with Mandingo urtoconfig.cfg)

seta g_log  "ioUrTserver.log"

N.B.: In the latest Urban Terror Server release was introduced a protection against commands flood (you can send a command every 3 seconds). Unfortunately Mandingo does an rcon send command sequence to accomplish it's works. Then, due flood protection, Mandingo probably would miss to execute some events (in a typical overload scenario). To resolve this problem you can configure urban terror server as following:

seta sv_floodprotect "0" 

(Many tnx to Woekele for the hint)

N.B.: Unfortunately this setting expose your players to possible flooding stuff (fuckin' bind radio)

All done, let’s starts Mandingo!!

1.3) Fire up Mandingo!

According with your preferences, Mandingo package ships two startup scripts:



MandingoStart-src: this script will try to starts Mandingo interpreted (source) version.

MandingoStart-bin: this script will try to starts Mandingo precompiled (binary) version.



You can starts Mandingo simply typing:

 

bash:# sh MandingoStart-src

If you would to detach your console and leave Mandingo always up type:

bash:# screen –T Mandingo –d –m sh MandingoStart-src

N.B.: you need screen (apt-get install screen) binary installed in your system.

If all goes fine you should notice the following situation (and Mandingo begin to blab in your Urban Terror Server):

bash:# ps aufx | grep urt0
root 8846 0.0 2.7 15992 12464 pts/2    S+   Jan21   0:00      \_ urt0-par  urtoconfig.cfg
root 8847 0.0 2.6 16348 11872 pts/2    S+   Jan21   0:07          \_ urt0-dat  urtoconfig.cfg
root 8848 0.0 2.4 15992 10944 pts/2    S+   Jan21   0:00          \_ urt0-aut  urtoconfig.cfg

Mandingo shows himself, in your process list, as a fork of 3 processes at least (if no plugins are enabled), if only one of these results to be missed, Mandingo wouldn't works.

At the end you can open following link:

http://<server.ip.address>:8998

with your favourite browser and login with following credentials:

My Master Name: mandingo

My Master Password: mandingo

2) Features

Now u’r askin for: “Why i’ve to install a blabbing robot on my server!!??



Cause Mandingo ships a lot of useful features; let me introduce them:



  • Advertising Features:

    • Welcome messages

    • Welcome Messages location based (GeoIP)

    • Headshot Counter

    • Lemmings Counter

    • Skill Enanchement Advisor (Killing Spree, Rampage, God Like)

    • Match Top Ten players List

    • Flag Captured

    • Flag Returned

    • Player Statistics on demand

  • Fair Play Features:

    • Teams Auto Balance on join

    • Teams Auto Balance on request (after die, after match ends)

    • Player Muting on message flood

  • Players Tracking:

    • Dynamical Statistics (RealTime & Web Based)

    • Complete Player Database (MySQL/DB3)

    • IP/Guid Tracking (you can keep a guid oriented database)

    • Players Skills Tracking (store all player skills information)

    • Players Aliasing (you can take control of every players play on your server)

  • Multiple Protocol Interface

    • InGame Interface

    • IRC Interface

    • MSN Interface

    • Telnet Interface

    • WEB Interface (NEW)

  • Administrative Purpose

    • List in game players specs

    • Player Join Alert (Email alerts)

    • Master Authentication

    • External Configuration Loading

    • Players Advising

    • Players Kick

    • Players Ban (Server way)

    • Players Ban (Mandingo way – GUID Based)

    • Players Slap

    • Players Flood Slap

    • Players Nuke

    • Players Flood Nuke

    • Players Mute



... and so on!



3) Interfaces

 

 

3.1) WEB Interface


Web administration interface is the last features coded in Mandingo. You don’t need any kind of Web Servers to run it (Mandingo already ships an embedded one).

By Web Interface you can control your Mandingo/UrT Server with every HTML 1.1/1.0 Browser enabled, without install any additional softwares...

 

3.1.1) Welcome screen

Pointing your browser to your Mandingo Authentication ip and port (according to urtoconfig.cfg) you’ll be prompted with the following interface:





To go ahed click on Login tab at the top of the page, a login layer will slide down.



3.1.2) Masters & Privileged Admins

The new web administration interface will introduce a new sets of Administrators. Privileged Admins will be a bounce of users will aids Master to administrate Urban Terror Server without access it (or know rcon password).

Every Privileged Admin had a privilege level (included 0-10) described as follow:



(0-5) Server Cop: able to access urt “server status” section and slap/nuke/kick a player.

(6-9) Supervisor: able to access all sections (except “UrT Config”) and issue all available commands.

(9-10) Administrator: is able to access all Mandingo functionalities!

This new kind of Administrators will be added in the file lists/admins.txt in the following syntax:



<admin login>|<admin pass>|<privilege level>



Es.:



Parantido|mypassword|6

3.1.3) Login screen





Fill Master Username and Master Password field with correct value (according with urtoconfig.cfg configuration).



3.1.4) Main screen

Ok now you’r in the main Mandingo operational panel.

N.B.: You’ll be prompted with an InGame Token (refreshed every map) that you’ll use to authenticate as a master during gameplay.





By this panel you can browse all operative section of your Mandingo installation:



  • UrT0 Config: will bring you in the configuration panel

  • Server Status: let you to see who’s playing in your server (and take actions)

  • Server Log: urt server log printed on web interface

  • Players List: let you browse players database (you need mysql plugin)

  • Banned Players List: list of urto-banned players (you need mysql plugin)

  • Mandingo ... Shut Up!!!: Mandingo doesn’t blab anymore

  • UrT Server Reload: reload urban terror server

  • Restart Mandingo Now: restart your Mandingo (useful after a configuration change)

  • Kill Mandingo Now: stops your Mandingo instance



3.1.5) Config screen





By the configuration panel you can configure, on the fly, your Mandingo installation without change antything in the urtoconfig.cfg file.

N.B.: After some particular configuration you need to restart Mandingo before your changes take place.



3.1.5.1) First Startup



Pls Take Care !!!! This is the most important step!!!



First time you access Mandingo web interface you could notice following text “Mandingo is Working in Config Mode” (blinkin’ at the page top). This means that Mandingo will not check your Urban Terror Server log file (he doesn’t know where to find it!). To starts Mandingo in Operational Bot Mode, you have to made all configuration then you have to set “Configuration Mode” value to “no”, after that you can restart Mandingo by Main Page.



Please take care to correctly fill following field:



UrT Server Log File Path: Absolute pathname to Urban Terror Server log file

UrT Server IP: Remote Urban Terror Server ip address

Rcon Password: Urban Terror Server RCON password



This variable could affect normal Mandingo functionalities!!!!



3.1.6) Players List





By this screen you can browse all people that played on your server, organized by GUID, IP and Player Name.

 

3.1.7) Banned Players List





By this screen you can browse people banned from your server, organized by GUID, IP and Player Name.



3.1.8) Dynamic Statistics





Dynamic statistics feature allow everyone to follow a match without join the game (and use slots to stay spect). Would be also useful to track statistics (kills, deaths, captured flags, recovered flag, and so on), during an official match, avoiding a referee to view complete demoes.



4.1) InGame Interface

All privileged administrators can interact with Mandingo during gameplay by say command line.

Mandingo understand command with an human itellegible syntax (no leading characters, no white spaces and well defined separators) like this:



Teams (simple command)

Auth iG862 (complex command without separators)



Every command could be written with uppercase or lowercase capital letter



Teams or teams is ok

TEAMS or TeAmS will be discarded



Mandingo will recognize two kind of users: Players and Masters



4.1.1) Players

Everyone play on your server is a potential Player, a player could be kicked, slapped, banned, advised, and so on through Mandingo. Every player only can issue following commands:



  • Help: Mandingo will show all the actions that a player can issue.

  • Teams: Mandingo will check for Team Balance needs. If no team needs to be balanced then asking player will be advised.

  • Stats: Mandingo will report player game statistics.


4.1.2) Masters Authentication

Every Player in order to be recognized as a Master need to follow an authentication sequence.



N.B.: You can authenticate yourself through all Mandingo Interfaces (Web, Telnet, MSN, IRC).

First of all you need to get an Authentication Token for your ip address! You can obtain a token by connecting to Web Interface (or by issuing an Auth command through other interfaces).

You’ll receive a token like this: 4z2M (according to your urtoconfig.cfg configuration)

Now you can enter the game and, through the say command, type:

\say Auth 4z2M

If Mandingo successfully recognize you will declame in bigtext "Jhon Doe is my Master" (in case of events overloading you wouldn't see bigtext ... don’t panic ... however you're a Master).

ATTENTION: Every Match End, for security reasons, players stats will be resetted (Master flag too). Every match begin you have to do:

\say Auth 4z2M 

N.B.: Mandingo use a persistent authentication map, then, for avoiding security issue, remember to deallocate your authentication token.

4.1.3) Masters DeAuthentication

To deauthenticate yourself simply open Mandingo Web Interface an click on Log[Out] at the top of main page.

To deauthenticate yourself through other interfaces (Telnet, IRC, MSN) you have to follow the steps reported below:

Get a list of authenticated ip addresses:

List

Find your ip address, then remove linked authentication token by

Remove 111.222.333.444

Your ip address is now successfully deauthenticated by Mandingo Interface.

4.1.4) Masters Actions

Every Master, during gameplay (and through every Mandingo Interface) could issue a great number of actions.



Available Actions are reported below:

  • Help: a list of all available actions.

  • List: a detailed list of all players (guid, timeslots, playername).

  • Teams: issue a team balance action..

  • Stats: will reports current match statistics.

  • Seen: will return latest play time of requested playername.



Es.:

\say seen Parantido



  • Auth: authenticate yourself as a master.



Es.:

\say auth 4z2M



  • Alias: return all requested player fake aliases (take player timeslot as argoument).



Es.:

\say alias 6



  • Reload: reload current map.

  • Vetovote: veto currently enabled vote.

  • Advise: will advise requested player (take player timeslot as argoument).



Es.:

\say advise 6


  • Clearadvise: will clear old requested player advise (take player timeslot as argoument).



Es.:

\say clearadvise 6



  • Kick: will kick requested player (take player timeslot as argoument).



Es.:

\say kick 6



  • Slap: will slap requested player (take player timeslot as argoument).



Es.:

\say slap 6



  • Floodslap: will floodslap requested player (take player timeslot as argoument).



Es.:

\say floodslap 6



  • Nuke: will nuke requested player (take player timeslot as argoument).



Es.:

\say nuke 6



  • Floodnuke: will floodnuke requested player (take player timeslot as argoument).



Es.:

\say floodnuke 6



  • Mute: will mute requested player (take player timeslot as argoument).



Es.:

\say mute 6



  • Serverban: will ban requested player (take player timeslot as argoument).



Es.:

\say serverban 6



  • Urtoban: will urtoban requested player (take player timeslot as argoument).



Es.:

\say urtoban 6



4.1.5) Difference between Serverban and Urtoban

Mandingo have two way to ban a player, first way is through Urban Terror Server engine. A Serverban action is the same to issue following rcon command:



\rcon ban 6

This kind of ban will only exclude a player through an ip address.

Today is quite simple to change an ip (by router restarts for example) for this reason Mandingo also have the Urtoban function!



Urtoban take player records (identified by player guid and ip addresses used in the past) and kick player every time he try to connect to.



N.B.: This feature need MySQL Plugins



5) Plugins



Mandingo is plugins oriented (everyone could code is own plugin and attach it to Mandingo engine in a simple way!).



5.1) Seen Plugin

Through the Seen Plugin Mandingo is able to recognize some players (defined in lists/seenplayers.txt) and correctly notify them to Server Masters (by Mandingo Interfaces or emails). This plugins is intented to avoid players name stealing!



5.2) UAA Plugin

Thanks to UAA Plugin, Mandingo will apply UrbanTerror Admins Alliance (http://www.urtadmins.com) bans to local banlist.txt.



5.3) MySQL Stats Plugin

MySQL stats plugin give Mandingo abilities to write player data in a MySQL Database. No configuration should be maded on MySQL Engine (apart user and db creation), Mandingo will create data structures by itself.

In MySQL tables will be stored players identifiers data and very detailed player skills (by mod, weapons and so on!)



5.4) MSN Bot Plugin

Through this plugin Mandingo will be able to connect to Microsoft Messenger network and add as a Masters/Users a list of MSN contact. Every Master will be able to issue all Actions defined above or to control his Urban Terror Server through an MSN compliant client.



5.5) IRC Bot Plugin

IRC Plugin is the most complex plugin. Further than expose all Master actions through IRC Protocol, it also works like an Eggdrop givin access to all IRC commands.



Features:

  • Every Master will be op on join

  • Anti Idle through ghost chans and garbage chan (to Avoid KLines)

  • IRC Command Proxy

  • Message Broadcasting (to chans, users, all)

  • Direct Rcon Interface



N.B.: Mandingo IRC Bot will get instructions only in private mode (Query)



Recognized Actions:

  • Help: will print all available Actions:

  • IRC: will give access to irc commands subset

  • List: print a list of players (Authenticated, Banned by Nick, Banned by Guid)

  • Auth: return an authentication token

  • Remove: remove an authentication token

  • Status: retrieve Urban Terror Server status

  • Seen: give access to Seen Plugin

  • Kick: kick a player

  • Serverban: ban a player through Urban Terror Server engine

  • Urtoban: ban a player through MySQL Plugin

  • Rcon: give access to Urban Terror Server rcon console

  • Broadcast: broadcast a message to every channel where Mandingo standing on, or to every users that Mandingo added in.



Every Master are able to issue following IRC subsets commands:

  • join <channel>: force Mandingo to join a channel

  • part <channel>: force Mandingo to left a channel

  • op <nick> <channel>: force Mandingo to give op status to a user on a channel

  • deop <nick> <channel>: force Mandingo to revoke op status from a user on a channel

  • kick <nick> <channel>: force Mandingo to kick a user from a channel



Masters user will be defined in the file lists/ircadmins.txt. That file is a field formatted file with following sintax:



<nickname>|<password>

Then the following entry



Parantido|Ciao

Means that the IRC user Parantido can authenticate himself on Mandingo writing in the private quary something like this:



login Ciao

N.B.: Password and Nickaname are case sensitive.



5.5.1) IRC Pickup Plugin



Now Mandingo is able to starts Pickup Sessions. No administrators always connected are needed to accomplish this functionality … Mandingo will take care about that!!!!



To configure Pickup feature you have to follow these steps:



  • Open Mandingo Web Interface and LogIN as Privileged Master.

  • Go to the “UrT0 Configuration” Section

  • Set “IRC Bot Pickup” to yes

  • Fill “Pickup Channel” field with the channel name where pickup session will takes place

  • Set “Pickup Player Limits” with the maximum players number allowed per pickup session

  • Set “Pickup Default Game Type” with the game type number will be choose if no one vote for a gametype

  • Set “Pickup Time Limit” with the maximum pickup session number of minutes

  • Set “Pickup Match Time Limit” with the maximum match number of minutes

  • Set “Pickup Default Map” with map name will be choose if no one vote a map

  • Fill “Pickup Server ip” with ip address an port will be spammed when a pickup session begin

  • Fill “Pickup Map List” with a coma separated allowed map name list



After that Mandingo will starts pickup sessions in the channel you choose!

Players wil be able to issue following commands:



  • !add: to add yourself to the current pickup session

  • !votemap: to vote preferred map

  • !votegtype: to vote preferred game type

  • !maplist: to issue the allowed map list (and their vote)

  • !gtypelsit: to issue the game type list (and their vote)

  • !status: to retrieve the players list added to the current pickup session

  • !help: display allowed command list



5.6) ADS Bot Plugin

Advertising Plugin is used to execute recurrent tasks. Through this plugin Mandingo is able to:



  • Spam an ADS Message (defined in the file lists/ads.txt)

  • Kick a player with an huge ping

  • Kick long time specting players

  • Print Date and Time