BeBot - An Anarchy Online and Age Of Conan chat automaton

Archive => Age of Conan Archive => AoC 0.6.x Custom/Unofficial modules => Topic started by: alekseyvip on April 14, 2010, 12:44:54 am

Title: Guild Recruit
Post by: alekseyvip on April 14, 2010, 12:44:54 am
Guys i have this module:
Code: [Select]
<?php
/*
* GuildInfo, by Kaeus
* This module helps people with guild recruitment.
*
* modifyed by Snyder for CRO guild on Crom server
*/
$GuildInfo = new GuildInfo($bot);

class 
GuildInfo extends BaseActiveModule {
private $recruitment_file 'D:/www/bebot/recruitment.php';
private $who_clicked = array();
private $spam_time 15;// minutes that spam protection is active
/*
constructor
*/
function __construct(&$bot) {
parent::__construct(&$botget_class($this));

$this->register_command('all''ginfo'"ANONYMOUS");

$this->bot->core("colors")->define_scheme("GI""highlight""yellow");
$this->bot->core("colors")->define_scheme("GI""normal""white");
$this->bot->core("colors")->define_scheme("GI""info""lightgreen");
$this->bot->core("colors")->define_scheme("GI""red""red");
$this->bot->core("colors")->define_scheme("GI""blue""blue");
/*
define classes and colors for recruitment
*/
$this->classes = array(
'sin' => 'Assasin',
'barb' => 'Barbarian',
'bs' => 'Bear Shaman',
'conq' => 'Conqueror',
'dt' => 'Dark Templar',
'demo' => 'Demonologist',
'guard' => 'Guardian',
'hox' => 'Herald of Xotli',
'necro' => 'Necromancer',
'pom' => 'Priest of Mitra',
'rang' => 'Ranger',
'tos' => 'Tempest of Set',
);
/*
you can pute more/less levels of recruitment
*/
$this->colors = array(
'none' => '#FFCC00',
'low' => '#FF0000',
'medium' => '#FF6600',
'high' => '#009900',
'ultrahigh' => '#005900',
);
// settings
$i 1;
$opt "";
// make options for settings
foreach ($this->colors as $k => $v) {$opt .= $k.";";unset($k$v);}
$opt eregi_replace(";$"""$opt);// remove last ; from options
// make settings loop
foreach ($this->classes as $short => $long) {
$this->bot->core("settings")->create("GuildInfo"$short"none"$long." requirement"$optfalse$i);
$i++;
}
unset($opt$i);
// help
$this->help['description'] = 'Helps with guild recruitment.';
$this->help['command']['ginfo'] = 'Displays guild\'s info tab.';
// officers
$this->officers = array(
// first is guild leader
'Airo',
// rest are officers
'Redangel',
'Snyder',
'Kovach',
'Biert',
'Matsocks',
'Molay',
'Xurlie',
);

}
/*

*/
function command_handler($name$msg$origin) {
// there is only one command
if (preg_match('/^ginfo/i'$msg$info)) {
// spam protection
if ($this->is_not_spam($name)) {
return $this->info($name);
}
}
else {
$this->bot->send_help($name);
}
}
   
/*
guild info stuff
*/
function info($name) {
// guild name
$txt "<font face='hyboriansmall' color='#FFFFFF'>CRO Guild</font>\n<font color=#000000>.<br></font>";
$txt .= "<font face='hyboriansmall' color='#FFFFFF'>http://www.cro-guild.com</font>\n<font color=#000000>.<br></font>";
// staff
$i 0;
foreach ($this->officers as $v) {
$online $this->find_officer($v);
$n $online[1];
$online $online[0];
// first one is guildleader
if (!$i) {$txt .= "##normal##Guild leader##end##\n";}
// rest are officers
else if ($i == 1) {$txt .= "##normal##Officers##end##\n";}
$txt .= "##GI_highlight##".$online['content']." :: <a href='chatcmd:///tell ".$n." Hey ".$n.", i would like some more info'>".$n."</a> ( ".$v." )##end##";
if ($v == $name) {$txt .= " - <font color='yellow'>posted recruitment info</font>";}
$txt .= "\n";
unset($v$online$n);
$i++;
}
// recruitment text from local file
// you can get one from your website if you really want...
$data file_exists($this->recruitment_file) ? file_get_contents($this->recruitment_file) : '';
$txt .= $data;
// loop to create requirement
foreach ($this->classes as $short => $long) {
$r $this->bot->core("settings")->get("GuildInfo"$short);// requirement for class
$txt .= "##normal##".$long.":##end## <font color='".$this->colors$r ]."'>[".$r."]</font>\n";
unset($short$long$r);
}
unset($data);
return $this->bot->core("tools")->make_blob("CRO Guild info"$txt);
}
/*
find officer
*/
public function find_officer($name) {
// query for officer, if hes not on any alts his main char will be shown ($name)
$query $this->bot->db->select("select o.nickname from #___online as o, #___alts as a where o.status_gc = '1' and ( (o.nickname = a.alt and a.main = '".$name."') or (o.nickname = a.main and a.alt = '".$name."') ) LIMIT 1");
if (!empty($query)) {
// just in case go with foreach loop, but there should be only one item in array
foreach ($query as $user) {
$name $user[0];
unset($user);
}
}
unset($query);
// online status on character $name
$online $this->bot->core("online")->get_online_state($name);
// return data array (online/offline, character name)
return array($online$name);
}
/*
spam protection agains wankers that click dozen times on link
*/
public function is_not_spam($name) {
// if name is in array, check if he clicked in last $this->spam_time minutes
if (isset($this->who_clicked$name ])) {
// name is in array, check if time char last time clicked is greater than time() - $this->spam_time
if ( $this->who_clicked$name ] > ( time() - $this->spam_time 60 ) ) {
return false;
}
}
$this->who_clicked$name ] = time();
return true;
}
}
?>
but i dont want see recruit class.
i want see GI Leader,Oficcers and want see him alts and online.
halp me but i noob in php.what need delete? :(
Title: Re: Guild Recruit
Post by: Yite on April 14, 2010, 10:09:45 am
put a /* at the start of line 128 and a */ at the end of line 132 (or just delete the lines)
Code: [Select]
/*      foreach ($this->classes as $short => $long) {
         $r = $this->bot->core("settings")->get("GuildInfo", $short);// requirement for class
         $txt .= "##normal##".$long.":##end## <font color='".$this->colors[ $r ]."'>[".$r."]</font>\n";
         unset($short, $long, $r);
      } */
Title: Re: Guild Recruit
Post by: RooK80 on June 22, 2010, 09:36:45 pm
Does this script have somekinda timer? we have guildrecruitment script with /tell togbot !ginfo and it might work once and then it doesnt do anything? Help the noob please :)
Title: Re: Guild Recruit
Post by: Redzan on June 30, 2010, 12:07:58 am
Does this script have somekinda timer? we have guildrecruitment script with /tell togbot !ginfo and it might work once and then it doesnt do anything? Help the noob please :)

Right near the top is what you're looking for. You can change the value to X number of minutes. 15 is a bit long.
Code: [Select]
private $spam_time = 15;// minutes that spam protection is active[code]
Title: Re: Guild Recruit
Post by: Spiff on July 02, 2010, 09:31:30 am
Code: [Select]
private $recruitment_file = 'D:/www/bebot/recruitment.php';
Is this the file that contains what the bot sais?
Does anyone have an example how this file should look?

Spiff
Title: Re: Guild Recruit
Post by: GaRoN on July 02, 2010, 01:07:50 pm
Take a look at this thread...

http://bebot.link/aoc-0-6-x-customunofficial-modules/help-on-ginfo/msg16001/#msg16001
SimplePortal 2.3.7 © 2008-2024, SimplePortal