Use steamUUID in highscore if available
							parent
							
								
									5d3c9cbe91
								
							
						
					
					
						commit
						a09064ea38
					
				|  | @ -36,30 +36,35 @@ campaignPlayer.route('/ranking/:campaignId') | |||
|                     } | ||||
| 
 | ||||
|                     const rankingItems = []; | ||||
|                     new Set(items.map(x => x.name)).forEach(playerName => { | ||||
|                       const playerInstances = items.filter(p => p.name === playerName); | ||||
|                       const resItem = { | ||||
|                         name: playerName, | ||||
|                         kill: 0, | ||||
|                         vehicle: 0, | ||||
|                         death: 0, | ||||
|                         friendlyFire: 0, | ||||
|                         revive: 0, | ||||
|                         respawn: 0, | ||||
|                         flagTouch: 0 | ||||
|                       }; | ||||
|                       for (let i = 0; i < playerInstances.length; i++) { | ||||
|                         resItem.kill += playerInstances[i].kill; | ||||
|                         resItem.death += playerInstances[i].death; | ||||
|                         resItem.friendlyFire += playerInstances[i].friendlyFire; | ||||
|                         resItem.vehicle += playerInstances[i].vehicle; | ||||
|                         resItem.revive += playerInstances[i].revive; | ||||
|                         resItem.respawn += playerInstances[i].respawn; | ||||
|                         resItem.flagTouch += playerInstances[i].flagTouch; | ||||
|                       } | ||||
|                       resItem.fraction = playerInstances[playerInstances.length - 1].fraction; | ||||
|                       rankingItems.push(resItem); | ||||
|                     }); | ||||
| 
 | ||||
|                     // check only first player to have valid steamUUID - then decide if tracked by name or by ID
 | ||||
|                     const usesUUID = isSteamUUID(items[0].steamUUID); | ||||
| 
 | ||||
|                     new Set(items.map(usesUUID ? x => x.steamUUID : x => x.name)) | ||||
|                       .forEach(player => { | ||||
|                         const playerInstances = items.filter(usesUUID ? p => p.steamUUID === player : p => p.name === player); | ||||
|                         const resItem = { | ||||
|                           name: usesUUID ? playerInstances[playerInstances.length - 1].name : player, | ||||
|                           kill: 0, | ||||
|                           vehicle: 0, | ||||
|                           death: 0, | ||||
|                           friendlyFire: 0, | ||||
|                           revive: 0, | ||||
|                           respawn: 0, | ||||
|                           flagTouch: 0 | ||||
|                         }; | ||||
|                         for (let i = 0; i < playerInstances.length; i++) { | ||||
|                           resItem.kill += playerInstances[i].kill; | ||||
|                           resItem.death += playerInstances[i].death; | ||||
|                           resItem.friendlyFire += playerInstances[i].friendlyFire; | ||||
|                           resItem.vehicle += playerInstances[i].vehicle; | ||||
|                           resItem.revive += playerInstances[i].revive; | ||||
|                           resItem.respawn += playerInstances[i].respawn; | ||||
|                           resItem.flagTouch += playerInstances[i].flagTouch; | ||||
|                         } | ||||
|                         resItem.fraction = playerInstances[playerInstances.length - 1].fraction; | ||||
|                         rankingItems.push(resItem); | ||||
|                       }); | ||||
| 
 | ||||
|                     function getSortedField(fieldName) { | ||||
|                       let num = 1; | ||||
|  |  | |||
|  | @ -5,7 +5,6 @@ const isSteamUUID = (input) => { | |||
|   return steamUIDPattern.test(input) | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| const sortCollectionBy = (collection, key) => { | ||||
|   collection.sort((a, b) => { | ||||
|     a = a[key].toLowerCase(); | ||||
|  | @ -50,8 +49,8 @@ const decimalToTimeString = (decimal) => { | |||
|     (seconds < 10 ? '0' + seconds : seconds); | ||||
| }; | ||||
| 
 | ||||
| exports.isSteamUUID = isSteamUUID; | ||||
| exports.sortCollection = sortCollectionBy; | ||||
| exports.playerArrayContains = playerArrayContains; | ||||
| exports.timeStringToDecimal = timeStringToDecimal; | ||||
| exports.decimalToTimeString = decimalToTimeString; | ||||
| exports.isSteamUUID = isSteamUUID; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue