# Embedded file name: /home/bouncer/sassbot/modules/artifact2-0/PlayerStats.py import sys import math import MySQLdb sys.path.insert(0, '/home/bouncer/sassbot/modules/artifact2-0/') import Calculate def PrintStats(phenny, input, parameters): playerStats = {} playerStats = RefreshStats(phenny, parameters) return '\x0399' + playerStats['CharacterName'] + ' ' + playerStats['ClanName'] + ' has ' + str(playerStats['HP']) + '/' + str(playerStats['MaxHP']) + ' HP, ' + str(playerStats['Strength']) + ' STR, ' + str(playerStats['Dexterity']) + ' DEX, ' + str(playerStats['Constitution']) + ' CON, ' + str(playerStats['Intelligence']) + ' INT and you have ' + str(playerStats['Currency']) + ' gold. Challenge rating: ' + str(playerStats['ChallengeRating']) + '. ' + str(playerStats['DodgePercentage']) + '% Dodge, ' + str(playerStats['CritPercentage']) + '% Crit, ' + str(playerStats['ArmorPercentage']) + '% Armor, ' + str(playerStats['PrecisionPercentage']) + '% Precision, ' + str(playerStats['ResistancePercentage']) + '% Resistance, ' + str(playerStats['Luck']) + ' Luck, ' + str(playerStats['BlockPercentage']) + '% Block' def RefreshStats(phenny, parameters): db = MySQLdb.connect(host='localhost', user=phenny.config.mysql_username, passwd=phenny.config.mysql_password, db=parameters['LiveDB']) c = db.cursor(MySQLdb.cursors.DictCursor) c.execute('SELECT `Nick`,`ClanName`,`Currency`,`State`,`CharacterName`,`Alive`,`ChallengeRating`,`RestedHeal`,`HP`,`AttributePoints`,`Strength`,`Dexterity`,`Constitution`,`Intelligence` FROM `Players` WHERE `Nick` = %s;', parameters['Nick']) sqlPlayerBase = c.fetchone() c.execute('SELECT `Nick`, SUM(`HandsReq`) AS HandsReq, SUM(`Strength`) AS Strength, SUM(`Dexterity`) AS Dexterity, SUM(`Constitution`) AS Constitution, SUM(`Intelligence`) AS Intelligence, SUM(`Crit`) AS Crit, SUM(`Dodge`) AS Dodge, SUM(`Armor`) AS Armor,SUM(`Precision`) AS `Precision`,SUM(`Resistance`) AS Resistance,SUM(`Luck`) AS Luck,SUM(`Block`) AS Block from \n (\n select `Nick`,0 AS `HandsReq`,`Strength`,`Dexterity`,`Constitution`,`Intelligence`,`Crit`,`Dodge`,`Armor`, `Precision`, `Resistance`, `Luck`, `Block` from `Players` \n union all \n select `Nick`,`HandsReq`,`Strength`,`Dexterity`,`Constitution`,`Intelligence`,`Crit`,`Dodge`,`Armor`, `Precision`, `Resistance`, `Luck`, `Block` from `Items_PlayerInventory` where `Equipped`=1 ) x \n WHERE `Nick`=%s group by `Nick`', parameters['Nick']) sqlPlayerStats = c.fetchone() playerStats = {} if c.rowcount: playerStats['Nick'] = sqlPlayerBase['Nick'] playerStats['Currency'] = sqlPlayerBase['Currency'] playerStats['ClanName'] = sqlPlayerBase['ClanName'] playerStats['CharacterName'] = sqlPlayerBase['CharacterName'] playerStats['State'] = sqlPlayerBase['State'] playerStats['Alive'] = sqlPlayerBase['Alive'] playerStats['ChallengeRating'] = sqlPlayerBase['ChallengeRating'] playerStats['RestedHeal'] = sqlPlayerBase['RestedHeal'] playerStats['HP'] = sqlPlayerBase['HP'] playerStats['MaxHP'] = int(math.ceil((float(sqlPlayerStats['Constitution']) + float(sqlPlayerStats['Constitution']) / 1.75) * 2)) playerStats['AttributePoints'] = sqlPlayerBase['AttributePoints'] playerStats['HandsReq'] = sqlPlayerStats['HandsReq'] playerStats['UnitType'] = 'Player' playerStats['Strength'] = sqlPlayerStats['Strength'] playerStats['Dexterity'] = sqlPlayerStats['Dexterity'] playerStats['Constitution'] = sqlPlayerStats['Constitution'] playerStats['Intelligence'] = sqlPlayerStats['Intelligence'] playerStats['DodgePercentage'] = Calculate.DiminishingReturns(sqlPlayerStats['Dodge'] + int(math.ceil(sqlPlayerStats['Dexterity'] / 2)), 25, 15) playerStats['CritPercentage'] = Calculate.DiminishingReturns(sqlPlayerStats['Crit'] + int(math.ceil(sqlPlayerStats['Dexterity'] / 2)), 25, 15) playerStats['ArmorPercentage'] = Calculate.DiminishingReturns(sqlPlayerStats['Armor'], 25, 0) playerStats['PrecisionPercentage'] = Calculate.DiminishingReturns(sqlPlayerStats['Precision'], 25, 0) playerStats['ResistancePercentage'] = Calculate.DiminishingReturns(sqlPlayerStats['Resistance'], 25, 0) playerStats['Luck'] = sqlPlayerStats['Luck'] playerStats['BlockPercentage'] = sqlPlayerStats['Block'] return playerStats