• 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter

    Posted in: General AddOns
  • 0

    posted a message on People kicking low GS players
    While I agree on the fact that just because someone's providing a service doesn't automatically mean that it's a good service and that you should use it. I.e. it's not really the addon author's fault if people start using the addon and it spreads like a plague while the original intent is lost somewhere in big numbers.

    Quote from markv
    As to the guy who complained about a caster rolling on an item because of a higher GS, that person would have rolled on the item because of it being a higher iLvl as well.

    I do disagree on this slightly: people generally don't have a clue about what item level is. Even with vehicles that scale based on your items, the average new-ish player doesn't know that. Isn't item level display disabled by default in the interface options as well? Not to mention it's a new thing. I think this is partly the root of the problem as well: people don't realize that "gearscore" is just a sum of your gear's item level multiplied with arbitrary scale values. Which makes me think that if people didn't see the gearscore of an item, they wouldn't be as hasty to pick an item just because it's item level is higher than previously. Or maybe I'm just an optimist? Previously you had to have an addon to show you the item level. People could still pick an item just because it was added later on the game (which might have been so obviously stupid that it didn't happen so often?), but with no addons to tell something irrelevant about the item, I've got the feeling that they might have looked at the item more carefully to judge if it's actually any good.

    I just don't remember seeing ANYONE saying "I need this because it's got higher item level", whereas I've seen lots of people saying "I need this cuz of big gearscore". Even in the guild chat people are joyous over "my gearscore just went up by 400 during this raid!" where as previously they wouldn't have talked about average item level. They would've just said "yay, I got like 6 imba upgrades during this run".

    "The scores are based on how blizzard assigns stats to an item and take in account ilevel, rarity, and equipment slot location. "
    To continue the rant, it's not like gearscore actually adds any useful information to an item. The baddest apple in the whole GS thing is it's "Master Loot Upgrade Mode" in my opinion. Fine, let the people think that GS is more than just a polished number of your average item level. DON'T let them think that it's got something to do with how good the item is for you. Let addons like RhadaTip and TankPoints do that part of the job. Makes me sad to even think that GS might be used for loot councils at its current state.

    I guess I'm pretty anti-GS huh? Luckily (I guess) my side of our server is pretty GS resistant as well. People post macroed responses if someone mentions gearscore ("gearscore isn't the reason why people invite you to raids", "keep this server gearscore free please"). I've heard that the situtation is not as good on the other side.
    Posted in: General Chat
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    I don't have a "copy from chat" -feature so can only use pics with these weird characters:

    Posted in: General AddOns
  • 0

    posted a message on Chloe's Cast Informer
    That sounds very good :)
    Posted in: General AddOns
  • 0

    posted a message on Chloe's Cast Informer
    Did you plan to add the output option as a global option for all announces or allow to choose the output individually for each ability?

    There are some spells that I'd only want to send to the recipient (like Power Infusion) and some spells that would be better to announce to others as well (like Pain Suppression). Basically, whisper personal buffs only to that person, but announce defensive cooldowns etc., that might affect the decisions other tanks & healers make, to a more global chat.
    Posted in: General AddOns
  • 0

    posted a message on UI Screenshots - Show us what you use!

    I've been wondering about this and these screenshots inspired me ;) Is it possible to make the spark 1 px wide and solid black?

    Whatever the addon is, my spark seems to be too tall for the frame and the width not clearly defined, and the height issue especially is something I was wanting to fix too. What needs to be modified if there's an addon that uses the spark?

    I imagine the problem can be that the movement makes the 1 px spark look fuzzy, but at least your spark isn't taller than the frame. :)
    Posted in: General Chat
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    Quote from cremor
    Will there be an option to get the "old" ASCII art filter back, or at least disable it completely?
    Because I don't want things filtered just because there are many exclamation/question marks.

    I'm with this too. I haven't really seen any ASCII gold spam, so for me at least the previous functionality has been good. I didn't see anything but false positives (I call false positive anything that's coming from a real player) with the alpha I tried. I wouldn't want to miss some pug I'd be interested on my alt just because the person used 6 exclamation marks. Sure it's annoying but doesn't tell anything about the quality of the raid itself. Also I don't know if I could suggest everyone to use BadBoy (as I do now, it's great:)) if it meant I also had to mention that some valid messages would get filtered.

    I saw your response to cremor's message but I was wondering if disabling the ASCII filter would make it worse than what we have now in the release version or if it would be the same as before?
    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    False positives (I'll just edit these here):

    [Tribal Leatherworking] 10g fee on most items

    LFM TOtc25! link specc/achiv for inv! smooth tun, /// [Crystal Plated Vanguard] reserved

    the crystal plated vanguard was first as the item link and then just regular text, since this was caught twice in a row.

    guess not......

    LFM totc 10..... /w me

    [Dragonscale Leatherworking] lfw

    WTB [Felsteel Bar] [Hardened Adamantite Bar] /W ME!!!!!!!!!!!!!!!!!!

    I'm on en-EU btw.
    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    Had to make this one a picture:

    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter, something got through:
    Posted in: General AddOns
  • 0

    posted a message on Using PHP to pull achievement data from armory
    I did a web page for our guild where it lists which achievements people still need for IC raider / Ulduar raider meta achievements. I used this post at EJ as a source.

    Since my www-page is just a personal university page I can't create MySQL databases so I had to modify the code a bit with the help of some php guides. I probably could use MySQL if this was integrated to our guild website but I don't have access to the admin side and don't know what it looks like so I prefer working with what I have right now. This is the code I use for the page:

    <?php include 'header.php'; ?>
      header('Content-Type: text/html; charset=utf-8');
    roster_gen class posted by D1g1talS0ul on elitistjerks.com 
    class roster_gen { 
     const BROWSER="Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20070319 Firefox/"; 
     public $query; 
     public $server; 
     public $guild; 
     public $guildie; 
     public $page; 
    public function __construct ( $query, $server, $guild, $guildie, $page ) { 
        $this->query = $query; 
        $this->server = $server; 
        $this->guild = $guild; 
        $this->guildie = $guildie; 
        $this->page = $page; 
     } // end of __construct() 
    public function pull_xml() { 
        if( $this->query === 'roster' ) { 
            $url = 'http://eu.wowarmory.com/guild-info.xml?r=' . $this->server . '&n=' . $this->guild. '&p=' . $this->page;
        } elseif( $this->query === 'character' ) { 
            $url = 'http://eu.wowarmory.com/character-sheet.xml?r=' . $this->server . '&n=' . $this->guildie; 
        } elseif( $this->query === 'achievements' ) { 
            $url = 'http://eu.wowarmory.com/character-achievements.xml?r=' . $this->server . '&cn=' . $this->guildie . '&gn=' .  
                $this->guild . '&c=168'; 
        $ch = curl_init(); 
        curl_setopt ($ch, CURLOPT_URL, $url); //The URL to fetch. This can also be set when initializing a session with curl_init().
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); //TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15); //The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
        curl_setopt ($ch, CURLOPT_USERAGENT,  roster_gen::BROWSER);//The contents of the "User-Agent: " header to be used in a HTTP request.
        $url_string = curl_exec($ch); 
        return simplexml_load_string($url_string); 
     } // end of pull_xml() 
    } // end class 
    $roster = new roster_gen ('roster', "server", guild, NULL, 1); 
    $xml_roster = $roster->pull_xml(); 
    // Change to querying achievements 
    // Set up the member array 
    $member_data = array(); 
    $id = 0; 
     function ach_icon($v) 
         if($v == 1) 
             return ".../ok.png"; 
             return ".../no.png"; 
     function ach_done($v) 
         if($v == 13) 
             return "<td align=\"center\" class=\"done\">"; 
         elseif($v>=10 && $v <= 12)
             return "<td align=\"center\" class=\"nearlydone\">";
         elseif($v>=5 && $v <= 9)
    	     return "<td align=\"center\" class=\"medium\">";
    	 elseif($v>=0 && $v <= 4)
    		 return "<td align=\"center\" class=\"notdone\">";
    print ("
    <div class=\"content\">
     	<table style=\"border-collapse:collapse;\">
     	<caption align=\"top\">
     	<b>Glory of the Ulduar Raider (25 Player)</b>
    	<col span=\"14\">
    	<col style=\" background-color:#e1e4e8;\">
     		<th scope=\"col\">&nbsp;</th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/inv_misc_shadowegg.jpg\" title=\"Orbit-uary\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_ignis_01.jpg\" title=\"Stokin' the Furnace\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_dungeon_ulduarraid_irondwarf_01.jpg\" title=\"Iron Dwarf, Medium Rare\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/inv_valentinescardtornleft.jpg\" title=\"Heartbreaker\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_theironcouncil_01.jpg\" title=\"I Choose You, Steelbreaker\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/ability_warrior_disarm.jpg\" title=\"Disarmed\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_auriaya_01.jpg\" title=\"Crazy Cat Lady\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_hodir_01.jpg\" title=\"I Could Say That This Cache Was Rare\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_thorim.jpg\" title=\"Lose Your Illusion\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_warpsplinter.jpg\" title=\"Knock, Knock, Knock on Wood\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/inv_misc_bomb_04.jpg\" title=\"Firefighter\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/achievement_boss_generalvezax_01.jpg\" title=\"I Love the Smell of Saronite in the Morning\" height=\"25\" width=\"25\"></th>
      		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/spell_shadow_shadesofdarkness.jpg\" title=\"One Light in the Darkness\" height=\"25\" width=\"25\"></th>
    		<th scope=\"col\"><img src= \"http://www.wowarmory.com/wow-icons/_images/51x51/inv_helmet_122.jpg\" title=\"Glory of the Ulduar Raider\" height=\"25\" width=\"25\"></th>
    foreach ($xml_roster->guildInfo->guild->members->character as $char) 
        if ($char['rank'] >=0 && $char['rank'] <= 1 OR $char['rank'] >= 4 && $char['rank'] <= 6 )  { 
            $roster->guildie = $char['name']; 
            $xml_char = $roster->pull_xml(); 
            $ach = find_category($xml_char->category); 
            $a = array(); 
            $a[0] = check_achievement($ach, 0); 
            $a[1] = check_achievement($ach, 1); 
            $a[2] = check_achievement($ach, 2); 
            $a[3] = check_achievement($ach, 3); 
            $a[4] = check_achievement($ach, 4); 
            $a[5] = check_achievement($ach, 5); 
            $a[6] = check_achievement($ach, 6); 
            $a[7] = check_achievement($ach, 7); 
            $a[8] = check_achievement($ach, 8); 
            $a[9] = check_achievement($ach, 9); 
            $a[10] = check_achievement($ach, 10);         
            $a[11] = check_achievement($ach, 11); 
            $a[12] = check_achievement($ach, 12); 
            $member_data[$id] = array( 
                                    'name' => $char['name'], 
                                    '0' => $a[0], 
                                    '1' => $a[1], 
                                    '2' => $a[2], 
                                    '3' => $a[3], 
                                    '4' => $a[4], 
                                    '5' => $a[5], 
                                    '6' => $a[6], 
                                    '7' => $a[7], 
                                    '8' => $a[8], 
                                    '9' => $a[9], 
                                    '10' => $a[10],                                 
                                    '11' => $a[11], 
                                    '12' => $a[12] 
    		$b = array();
    		$b[0] = ach_icon($a[0]); 
            $b[1] = ach_icon($a[1]); 
            $b[2] = ach_icon($a[2]);
            $b[3] = ach_icon($a[3]);
            $b[4] = ach_icon($a[4]); 
            $b[5] = ach_icon($a[5]);
            $b[6] = ach_icon($a[6]); 
            $b[7] = ach_icon($a[7]); 
            $b[8] = ach_icon($a[8]); 
            $b[9] = ach_icon($a[9]); 
            $b[10] = ach_icon($a[10]);         
            $b[11] = ach_icon($a[11]);
            $b[12] = ach_icon($a[12]);                       
      			<td style=\"text-align: center\"><a href=\"http://eu.wowarmory.com/character-sheet.xml?r=server&cn={$char['name']}\">{$char['name']}</a></td>
     			<td align=\"center\"><img src={$b[0]} title=\"{$char['name']}: Orbit-uary\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[1]} title=\"{$char['name']}: Stokin' the Furnace\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[2]} title=\"{$char['name']}: Iron Dwarf, Medium Rare\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[3]} title=\"{$char['name']}: Heartbreaker\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[4]} title=\"{$char['name']}: I Choose You, Steelbreaker\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[5]} title=\"{$char['name']}: Disarmed\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[6]} title=\"{$char['name']}: Crazy Cat Lady\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[7]} title=\"{$char['name']}: I Could Say That This Cache Was Rare\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[8]} title=\"{$char['name']}: Lose Your Illusion\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[9]} title=\"{$char['name']}: Knock, Knock, Knock on Wood\" height=\"15\" width=\"15\" ></td>
     			<td align=\"center\"><img src={$b[10]} title=\"{$char['name']}: Firefighter\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[11]} title=\"{$char['name']}: I Love the Smell of Saronite in the Morning\" height=\"15\" width=\"15\"></td>
     			<td align=\"center\"><img src={$b[12]} title=\"{$char['name']}: One Light in the Darkness\" height=\"15\" width=\"15\"></td>
    			". ach_done(array_sum($a)) . array_sum($a) . "/13 </td>
    print("</table> </div>");
    function find_category($xml) 
        foreach($xml->achievement as $ach) { 
            if($ach['id'] == 2958) 
                return $ach; 
    function check_achievement($achievement, $num) {
    if($achievement ['dateCompleted'] != NULL)
            return 1;
        if($achievement->criteria[$num]['date'] != NULL) 
            return 1; 
            return 0;
    <?php include 'footer.php'; ?>

    It was pretty simple to pull the meta data from the XML, yet now I'd like to do a page that shows the other, non-meta achievements for Ulduar (or lets pretend Naxxramas since the amount of achievements in Ulduar is slightly overwhelming...).

    Targaryen@EJ says that pulling the achievement data from subcategories would need something like this:
    function find_category($xml)  
        foreach($xml->category as $cat)
            foreach($cat->achievement as $ach)
                if($ach['id'] == 576)  
                    return $ach;

    I was wondering how to actually implement that, how to make a table with all those different achievements in a row for each person. Would I need to copy that piece of code for each achievement and return $ach_i (where i=1-16 non-meta-achis for Naxxramas) and then ???. Or what might be the proper way to do it?

    The last time I did something with PHP was 5+ years ago and even then it was just basic stuff, so this is all done based on examples, trial and error. That's why I'm not that good at adapting. And also I wouldn't mind if you explained things as you would explain them to a chimp. :P
    Posted in: General Chat
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    A busy period. (

    Posted in: General AddOns
  • 0

    posted a message on BadBoy: An extremely minimal spam blocker & reporter
    A new one again. (

    Posted in: General AddOns
  • To post a comment, please or register a new account.