From aa2c21887a6169868711bd35511d183245eec4f6 Mon Sep 17 00:00:00 2001 From: Jason Le Long Date: Sat, 24 Mar 2018 22:26:36 +0000 Subject: First working build for V2 --- sassbot/modules/artifact2-0/PlayerStats.py | 47 ++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sassbot/modules/artifact2-0/PlayerStats.py (limited to 'sassbot/modules/artifact2-0/PlayerStats.py') diff --git a/sassbot/modules/artifact2-0/PlayerStats.py b/sassbot/modules/artifact2-0/PlayerStats.py new file mode 100644 index 0000000..39c919e --- /dev/null +++ b/sassbot/modules/artifact2-0/PlayerStats.py @@ -0,0 +1,47 @@ +# 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 \ No newline at end of file -- cgit v1.2.3