9a0a76c9f4
The pool now comes from the game's OWN resident database, not from a rating index plus guesses. tools/db_dump.py walked the client's self-describing table catalog read-only and wrote data/tables/ (149 tables, 55MB); tools/build_player_facts.py turned it into data/player_facts.json; data/pool.json is the compact form fut_cards loads. MEASURED, per player: position (players.preferredposition1), nationality, teamid, leagueid (via leagueteamlinks), and the six card attributes. The six attributes are NOT columns -- they are a weighted sum of the 29 base attributes, and the weights are read out of the game's own playerattributesmapping table rather than from published formulas. Checked against real FIFA 17 cards: Messi 89/90/86/96/26/61 and Ibrahimovic 72/90/81/85/31/86 are EXACT, Suarez is one off on physical, Ronaldo within two on pace and shooting. Keepers come out directly from the gk* columns. What this fixes on screen: Kaka was a CDM, Bale a CM, Suarez a GK, and every attribute was derived from the rating. Now Bale is RW, Boateng is a CB with 90 defending, De Gea is a GK, and a bronze pack deals real bronze players in real positions. REVERSAL, deliberate: nation/team/league were being sent as ZERO so the client would fill its own values (the merge fills those three only when they arrive zero). Now that we hold the game's own numbers there is nothing to gain from zeros, and they actively hurt -- club-stats drill-downs bucket by the item's own nation and leagueId, so a club full of zeros would have quietly emptied the per-nation and per-league panels fixed the day before. Send the real values. The old rating-index path is kept as a fallback so the pool still builds without data/pool.json, and it now says out loud which of the two it used, because one is a measurement and the other is a guess. 439 + 61 checks green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VUT92pz6RWKih9dSr8ZpxW
1 line
15 KiB
JSON
1 line
15 KiB
JSON
{"table":"gkcoachcards","source":"FIFA17.exe resident database (tools/db_dump.py)","rowcount":121,"rowsize_bytes":20,"rows_emitted":121,"rowblock":"0x4280ec48","rowblock_bytes":2449,"descriptor":"0x4280eb28","schema":[{"name":"firstname","bit":0,"width":32,"kind":"string","min":0,"max":0,"storage":"offset-unresolved"},{"name":"lastname","bit":32,"width":32,"kind":"string","min":0,"max":0,"storage":"offset-unresolved"},{"name":"carddbid","bit":64,"width":24,"kind":"int","min":0,"max":9999999,"storage":"int"},{"name":"assetid","bit":88,"width":24,"kind":"int","min":0,"max":16777215,"storage":"int"},{"name":"attribute","bit":112,"width":4,"kind":"int","min":0,"max":10,"storage":"int"},{"name":"value","bit":116,"width":7,"kind":"int","min":0,"max":100,"storage":"int"},{"name":"amount","bit":123,"width":5,"kind":"int","min":-5,"max":20,"storage":"int"},{"name":"rare","bit":128,"width":1,"kind":"int","min":0,"max":1,"storage":"int"}],"rows":[{"firstname":0,"lastname":2,"carddbid":9000001,"assetid":9000001,"attribute":0,"value":55,"amount":5,"rare":0},{"firstname":10,"lastname":12,"carddbid":9000005,"assetid":9000005,"attribute":1,"value":55,"amount":5,"rare":0},{"firstname":18,"lastname":20,"carddbid":9000017,"assetid":9000017,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":29,"lastname":31,"carddbid":9000021,"assetid":9000021,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":41,"lastname":43,"carddbid":9000025,"assetid":9000025,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":49,"lastname":51,"carddbid":9000029,"assetid":9000029,"attribute":1,"value":55,"amount":5,"rare":0},{"firstname":57,"lastname":59,"carddbid":9000037,"assetid":9000037,"attribute":3,"value":64,"amount":5,"rare":1},{"firstname":67,"lastname":69,"carddbid":9000041,"assetid":9000041,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":76,"lastname":78,"carddbid":9000045,"assetid":9000045,"attribute":5,"value":64,"amount":5,"rare":1},{"firstname":84,"lastname":86,"carddbid":9000053,"assetid":9000053,"attribute":1,"value":64,"amount":5,"rare":1},{"firstname":92,"lastname":94,"carddbid":9000057,"assetid":9000057,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":101,"lastname":103,"carddbid":9000061,"assetid":9000061,"attribute":3,"value":64,"amount":5,"rare":1},{"firstname":111,"lastname":113,"carddbid":9000065,"assetid":9000065,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":117,"lastname":119,"carddbid":9000069,"assetid":9000069,"attribute":5,"value":64,"amount":5,"rare":1},{"firstname":125,"lastname":127,"carddbid":9000073,"assetid":9000073,"attribute":0,"value":64,"amount":5,"rare":1},{"firstname":133,"lastname":135,"carddbid":9000077,"assetid":9000077,"attribute":1,"value":64,"amount":5,"rare":1},{"firstname":147,"lastname":149,"carddbid":9000081,"assetid":9000081,"attribute":2,"value":66,"amount":5,"rare":0},{"firstname":155,"lastname":157,"carddbid":9000085,"assetid":9000085,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":165,"lastname":167,"carddbid":9000097,"assetid":9000097,"attribute":0,"value":66,"amount":5,"rare":0},{"firstname":175,"lastname":177,"carddbid":9000101,"assetid":9000101,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":182,"lastname":184,"carddbid":9000105,"assetid":9000105,"attribute":2,"value":66,"amount":5,"rare":0},{"firstname":188,"lastname":190,"carddbid":9000109,"assetid":9000109,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":199,"lastname":201,"carddbid":9000113,"assetid":9000113,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":209,"lastname":211,"carddbid":9000117,"assetid":9000117,"attribute":5,"value":80,"amount":15,"rare":1},{"firstname":216,"lastname":218,"carddbid":9000121,"assetid":9000121,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":223,"lastname":225,"carddbid":9000125,"assetid":9000125,"attribute":1,"value":74,"amount":10,"rare":1},{"firstname":230,"lastname":232,"carddbid":9000129,"assetid":9000129,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":240,"lastname":242,"carddbid":9000133,"assetid":9000133,"attribute":3,"value":74,"amount":10,"rare":1},{"firstname":247,"lastname":249,"carddbid":9000137,"assetid":9000137,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":255,"lastname":257,"carddbid":9000141,"assetid":9000141,"attribute":5,"value":74,"amount":10,"rare":1},{"firstname":263,"lastname":265,"carddbid":9000145,"assetid":9000145,"attribute":0,"value":74,"amount":10,"rare":1},{"firstname":275,"lastname":277,"carddbid":9000149,"assetid":9000149,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":283,"lastname":285,"carddbid":9000153,"assetid":9000153,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":292,"lastname":294,"carddbid":9000157,"assetid":9000157,"attribute":3,"value":80,"amount":15,"rare":1},{"firstname":305,"lastname":307,"carddbid":9000161,"assetid":9000161,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":315,"lastname":317,"carddbid":9000165,"assetid":9000165,"attribute":5,"value":74,"amount":10,"rare":1},{"firstname":323,"lastname":325,"carddbid":9000169,"assetid":9000169,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":332,"lastname":334,"carddbid":9000173,"assetid":9000173,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":340,"lastname":342,"carddbid":9000177,"assetid":9000177,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":345,"lastname":347,"carddbid":9000181,"assetid":9000181,"attribute":3,"value":75,"amount":10,"rare":0},{"firstname":354,"lastname":356,"carddbid":9000185,"assetid":9000185,"attribute":4,"value":75,"amount":10,"rare":0},{"firstname":360,"lastname":362,"carddbid":9000189,"assetid":9000189,"attribute":5,"value":75,"amount":10,"rare":0},{"firstname":366,"lastname":368,"carddbid":9000193,"assetid":9000193,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":376,"lastname":378,"carddbid":9000197,"assetid":9000197,"attribute":1,"value":75,"amount":10,"rare":0},{"firstname":383,"lastname":385,"carddbid":9000201,"assetid":9000201,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":399,"lastname":401,"carddbid":9000205,"assetid":9000205,"attribute":3,"value":75,"amount":10,"rare":0},{"firstname":409,"lastname":411,"carddbid":9000209,"assetid":9000209,"attribute":4,"value":75,"amount":10,"rare":0},{"firstname":416,"lastname":418,"carddbid":9000213,"assetid":9000213,"attribute":5,"value":75,"amount":10,"rare":0},{"firstname":426,"lastname":428,"carddbid":9000217,"assetid":9000217,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":437,"lastname":439,"carddbid":9000221,"assetid":9000221,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":445,"lastname":447,"carddbid":9000225,"assetid":9000225,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":453,"lastname":455,"carddbid":9000229,"assetid":9000229,"attribute":3,"value":74,"amount":10,"rare":1},{"firstname":463,"lastname":465,"carddbid":9000233,"assetid":9000233,"attribute":4,"value":80,"amount":15,"rare":1},{"firstname":474,"lastname":476,"carddbid":9000237,"assetid":9000237,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":482,"lastname":484,"carddbid":9000241,"assetid":9000241,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":493,"lastname":495,"carddbid":9000245,"assetid":9000245,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":504,"lastname":506,"carddbid":9000253,"assetid":9000253,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":512,"lastname":514,"carddbid":9000257,"assetid":9000257,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":519,"lastname":521,"carddbid":9000258,"assetid":9000258,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":528,"lastname":530,"carddbid":9000261,"assetid":9000261,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":539,"lastname":541,"carddbid":9000262,"assetid":9000262,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":546,"lastname":548,"carddbid":9000263,"assetid":9000263,"attribute":1,"value":55,"amount":5,"rare":0},{"firstname":555,"lastname":559,"carddbid":9000264,"assetid":9000264,"attribute":2,"value":55,"amount":5,"rare":0},{"firstname":566,"lastname":568,"carddbid":9000265,"assetid":9000265,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":579,"lastname":581,"carddbid":9000266,"assetid":9000266,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":585,"lastname":587,"carddbid":9000267,"assetid":9000267,"attribute":3,"value":64,"amount":5,"rare":1},{"firstname":594,"lastname":596,"carddbid":9000268,"assetid":9000268,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":605,"lastname":607,"carddbid":9000269,"assetid":9000269,"attribute":5,"value":64,"amount":5,"rare":1},{"firstname":616,"lastname":618,"carddbid":9000270,"assetid":9000270,"attribute":1,"value":64,"amount":5,"rare":1},{"firstname":622,"lastname":624,"carddbid":9000271,"assetid":9000271,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":631,"lastname":633,"carddbid":9000272,"assetid":9000272,"attribute":3,"value":64,"amount":5,"rare":1},{"firstname":643,"lastname":645,"carddbid":9000273,"assetid":9000273,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":660,"lastname":662,"carddbid":9000275,"assetid":9000275,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":668,"lastname":670,"carddbid":9000276,"assetid":9000276,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":676,"lastname":678,"carddbid":9000277,"assetid":9000277,"attribute":5,"value":66,"amount":5,"rare":0},{"firstname":684,"lastname":686,"carddbid":9000278,"assetid":9000278,"attribute":0,"value":66,"amount":5,"rare":0},{"firstname":689,"lastname":692,"carddbid":9000279,"assetid":9000279,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":695,"lastname":697,"carddbid":9000281,"assetid":9000281,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":701,"lastname":703,"carddbid":9000282,"assetid":9000282,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":709,"lastname":711,"carddbid":9000283,"assetid":9000283,"attribute":1,"value":74,"amount":10,"rare":1},{"firstname":719,"lastname":721,"carddbid":9000284,"assetid":9000284,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":728,"lastname":730,"carddbid":9000285,"assetid":9000285,"attribute":3,"value":74,"amount":10,"rare":1},{"firstname":735,"lastname":737,"carddbid":9000286,"assetid":9000286,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":745,"lastname":747,"carddbid":9000287,"assetid":9000287,"attribute":5,"value":74,"amount":10,"rare":1},{"firstname":752,"lastname":754,"carddbid":9000288,"assetid":9000288,"attribute":0,"value":74,"amount":10,"rare":1},{"firstname":759,"lastname":761,"carddbid":9000289,"assetid":9000289,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":769,"lastname":772,"carddbid":9000290,"assetid":9000290,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":780,"lastname":782,"carddbid":9000291,"assetid":9000291,"attribute":5,"value":74,"amount":10,"rare":1},{"firstname":789,"lastname":791,"carddbid":9000292,"assetid":9000292,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":799,"lastname":801,"carddbid":9000293,"assetid":9000293,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":809,"lastname":811,"carddbid":9000294,"assetid":9000294,"attribute":5,"value":66,"amount":5,"rare":0},{"firstname":819,"lastname":821,"carddbid":9000295,"assetid":9000295,"attribute":0,"value":66,"amount":5,"rare":0},{"firstname":829,"lastname":831,"carddbid":9000296,"assetid":9000296,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":836,"lastname":838,"carddbid":9000297,"assetid":9000297,"attribute":2,"value":66,"amount":5,"rare":0},{"firstname":848,"lastname":850,"carddbid":9000298,"assetid":9000298,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":855,"lastname":857,"carddbid":9000299,"assetid":9000299,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":863,"lastname":865,"carddbid":9000300,"assetid":9000300,"attribute":1,"value":74,"amount":10,"rare":1},{"firstname":874,"lastname":876,"carddbid":9000301,"assetid":9000301,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":887,"lastname":889,"carddbid":9000302,"assetid":9000302,"attribute":3,"value":74,"amount":10,"rare":1},{"firstname":895,"lastname":897,"carddbid":9000303,"assetid":9000303,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":900,"lastname":902,"carddbid":9000304,"assetid":9000304,"attribute":5,"value":74,"amount":10,"rare":1},{"firstname":907,"lastname":909,"carddbid":9000305,"assetid":9000305,"attribute":0,"value":74,"amount":10,"rare":1},{"firstname":917,"lastname":919,"carddbid":9000306,"assetid":9000306,"attribute":2,"value":74,"amount":10,"rare":1},{"firstname":924,"lastname":926,"carddbid":9000307,"assetid":9000307,"attribute":4,"value":74,"amount":10,"rare":1},{"firstname":935,"lastname":937,"carddbid":9000308,"assetid":9000308,"attribute":5,"value":80,"amount":15,"rare":1},{"firstname":945,"lastname":947,"carddbid":9000309,"assetid":9000309,"attribute":3,"value":74,"amount":10,"rare":1},{"firstname":954,"lastname":956,"carddbid":9000310,"assetid":9000310,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":962,"lastname":964,"carddbid":9000311,"assetid":9000311,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":971,"lastname":973,"carddbid":9000312,"assetid":9000312,"attribute":3,"value":75,"amount":10,"rare":0},{"firstname":978,"lastname":980,"carddbid":9000313,"assetid":9000313,"attribute":4,"value":75,"amount":10,"rare":0},{"firstname":986,"lastname":988,"carddbid":9000314,"assetid":9000314,"attribute":5,"value":75,"amount":10,"rare":0},{"firstname":993,"lastname":995,"carddbid":9000315,"assetid":9000315,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":1002,"lastname":1004,"carddbid":9000316,"assetid":9000316,"attribute":1,"value":75,"amount":10,"rare":0},{"firstname":1014,"lastname":1016,"carddbid":9000317,"assetid":9000317,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":1026,"lastname":1028,"carddbid":9000318,"assetid":9000318,"attribute":3,"value":75,"amount":10,"rare":0},{"firstname":1036,"lastname":1038,"carddbid":9000319,"assetid":9000319,"attribute":4,"value":75,"amount":10,"rare":0},{"firstname":1042,"lastname":1044,"carddbid":9000320,"assetid":9000320,"attribute":5,"value":75,"amount":10,"rare":0},{"firstname":1054,"lastname":1056,"carddbid":9000321,"assetid":9000321,"attribute":0,"value":75,"amount":10,"rare":0},{"firstname":1063,"lastname":1065,"carddbid":9000322,"assetid":9000322,"attribute":2,"value":75,"amount":10,"rare":0},{"firstname":1075,"lastname":1077,"carddbid":9000323,"assetid":9000323,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":1087,"lastname":1089,"carddbid":9000324,"assetid":9000324,"attribute":5,"value":80,"amount":15,"rare":1}]} |