BeBot - An Anarchy Online and Age Of Conan chat automaton
		General => Feedback and Suggestions => Topic started by: Getrix on February 15, 2009, 06:05:25 pm 
		
			
			- 
				In AoC we have PvP lvl.
This isnt querie able, but what if its added a command like "!setcraft" that add it to member table?
And then also showed when doing whois.
			 
			
			- 
				*Bump*
Any chance to get this?
			 
			
			- 
				Yg.com has this information.
Would be nice to see on the bot.
Wizhk
			 
			
			- 
				YG.com is not relable imo...
They scan a specific area with a player char, taking the information out of memory the client has around him and saving it to DB.
I have alot of alts, non of they are added to YG.com. And i can see a problem on up2date profiles as you need to be in this area all the time to get it updated...
What i have made as a solution is disable "!logon" and added "!setpvp [0-5]" that will insert "PvP lvl [0-5]" where you have the "logon" messages. But i would like to have it as a PvP lvl variable so you can see it on "!whois" like you do with "!setcraft"
			 
			
			- 
				Check out core/aoc/Whois.php for that.
			
 
			
			- 
				CREATE TABLE `pvplevel` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(32) NOT NULL,
  `pvplevel` int(3) default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`)
);
Modification needed:
core\aoc\Whois.php
291 a $who["pvplevel"] = $lookup[0]['pvplevel'];
147 a $lookup2 = $this -> bot -> db -> select("SELECT pvplevel FROM pvplevel WHERE name = '" . $name . "'", MYSQL_ASSOC);
148 a if (!empty($lookup2)) {
149 a $who["pvplevel"] = $lookup2[0]['pvplevel'];
150 a    }
291 a $who["pvplevel"] = $lookup[0]['pvplevel'];
393 m $this -> bot -> db -> query("INSERT INTO #___whois (id, nickname, level, pvplevel,"
395 m . " VALUES ('" . $who["id"] . "', '" . $who["nickname"] . "', '" . $who["level"] . "', '" . $who["pvplevel"] . "', '" . $who["class"] . "', '" . $who["craft1"] . "', '" . $who["craft2"] . "', " . $who["location"] . ", " . $who["online"] . ", "
397 m . "level = VALUES(level), pvplevel = VALUES(pvplevel), class = VALUES(class), craft1 = VALUES(craft1), craft2 = VALUES(craft2), online = VALUES(online), location = VALUES(location), "
417 a if(!empty($whois['pvplevel']))
418 a {
419 a    $window .= " ##normal##PvP Level:##end## ##highlight##{$whois['pvplevel']}##end##\n";
420 a }
a = add
m = modify
modules\aoc\setpvplvl.php
<?php
/*
 Author : Getrix
*/
$pvplevel = new pvplevel($bot);
class pvplevel extends BaseActiveModule
{
   /*
   Constructor: Hands over a referance to the "Bot" class.
   */
   function __construct (&$bot)
   {
      //Initialize the base module
      parent::__construct(&$bot, get_class($this));
                $this -> register_command('tell', 'setpvp', 'MEMBER');
                $this -> register_command('gc', 'setpvp', 'MEMBER');
        
                $this -> help['description'] = "This command adds your PvP Level to messages when you logon";
      $this -> help['command']['setpvp 0-5'] = "Set your current PvP Level.";
      $this -> help['notes'] = "Only set your real level. If abused you will get 24hr ban from bot without warning.";
   }
   /*
   Unified message handler
   $source: The originating player
   $msg: The actual message, including command prefix and all
   $type: The channel the message arrived from. This can be either "tell", "pgmsg" or "gc"
   */
   function command_handler($name, $msg, $type)
   {
      //ALWAYS reset the error handler before parsing the commands to prevent stale errors from giving false reports
      $this->error->reset();
      
      if (preg_match("/^setpvp (.+)$/i", $msg, $info)) {
                  return($this -> setpvp($info[1], $name));
      }
      else  {
               $this -> error -> set("Broken plugin, recieved unhandled command: $command");
         return($this->error->message());
      }
   }
   
   function setpvp($pvplevel, $name) {
      $sql = "SELECT char_id FROM #___users WHERE nickname = '$name'";
           $result = $this -> bot -> db -> select($sql);
           if ($this -> bot -> guildbot && !empty($result))
           {
      $char_id = $result[0][0];
      if(is_numeric($pvplevel)) {
         $this -> bot -> db -> query('INSERT INTO pvplevel (name,id,pvplevel) VALUES("'.$name.'","'.$char_id.'", "'.$pvplevel.'") ON DUPLICATE KEY UPDATE name=values(name), id=values(id), pvplevel=(pvplevel)');
         $this -> bot -> db -> query("UPDATE #___whois SET pvplevel = '" . $pvplevel . "' WHERE nickname = '" . $name . "'");
         $strmsg = "Thanks for setting your PvP Level.";
      }
      else { $strmsg = "Your pvp level '$pvplevel' is not a number!"; }
      }
      else { $strmsg = "Failed"; }
           return $strmsg;
   }
}
?>
			 
			
			- 
				Sorry to necro this thread, but I think YG profiles will soon become more reliable as they have recently released a profile updater that regular players can run on their machines while they are playing.  Any people they cross paths with during their playtime will get updated on the YG database.  I started running it last night and it seems to be working pretty well.
Beyond that, I know nothing about writing Bebot modules, but it would be great to see something that can leverage that YG profile information.
			 
			
			- 
				i have downloaded that yg updater and tbh it will take a looong time for it to successfully update.. whit i have done is runn the app and went to conarch, running from one end of the map to the other, stopping at rez points for 15+ min, so that all players that are there or respawn there gets loged... i went to most instances.. and to top it off wrote down a few "regularly" seen characters names down..
6 zones and 3hrs later... i went online to yg and searched the characters from my list and comparing it to the site.. it failed..my test.. some members were not even listed...
so i thought mybe the site needs to refresh every 24 hours... checked again the next day.. only 2 were added. so after a week i check and ahh what do you know.. the stats are there. but it is old...:(.. i used the ingame search to look for members and compare the supposely new added info and once again it faild cause the characters were 6 lvl's ahead of the website...so if accuracy you want.. yg is to slow at this time...
ok after saying that.. cant we get a code that reads the pvp lvl from the game like it does your normal lvl..? also how can the code from the new "autogratz" mod be used for this..
thanx..