{"id":148,"date":"2026-03-27T19:37:59","date_gmt":"2026-03-27T19:37:59","guid":{"rendered":"https:\/\/theroyalscode.com\/students\/l_lazar\/?p=148"},"modified":"2026-03-27T19:37:59","modified_gmt":"2026-03-27T19:37:59","slug":"heres-my-free-friday-post-for-the-last-few-fridays","status":"publish","type":"post","link":"https:\/\/theroyalscode.com\/students\/l_lazar\/2026\/03\/27\/heres-my-free-friday-post-for-the-last-few-fridays\/","title":{"rendered":"heres my free friday post for the last few fridays"},"content":{"rendered":"\n<p>PS S:\\CSGO&gt; &amp; &#8220;C:\/Program Files (x86)\/Python313\/python.exe&#8221; s:\/CSGO\/csgo_game.py<br>Enter your username: LOGAN<br>Owner privileges enabled.<\/p>\n\n\n\n<p>===== CS:GO CASE GAME V3 =====<br>[OWNER] [Money: $0.00] [Level: 1] [XP: 0\/100]<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open Case<\/li>\n\n\n\n<li>View Inventory<\/li>\n\n\n\n<li>Jackpot Gamble<\/li>\n\n\n\n<li>Offer Trade<\/li>\n\n\n\n<li>Accept Trade<\/li>\n\n\n\n<li>Decline Trade<\/li>\n\n\n\n<li>Clicker Mode<\/li>\n\n\n\n<li>View Profile<\/li>\n\n\n\n<li>Exit Game<\/li>\n<\/ol>\n\n\n\n<p>all of these work and i had help from the ai but i still understood most of it <\/p>\n\n\n\n<p><em>import<\/em> random<\/p>\n\n\n\n<p><em>import<\/em> time<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># CONFIGURATION<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p>OWNER = &#8220;LOGAN&#8221; &nbsp;<em># Only ALL-CAPS LOGAN is the owner<\/em><\/p>\n\n\n\n<p><em># Harsher base rarities<\/em><\/p>\n\n\n\n<p>RARITIES = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Common&#8221;: 0.80,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Uncommon&#8221;: 0.15,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Rare&#8221;: 0.04,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Epic&#8221;: 0.009,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Gold&#8221;: 0.001<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>WEAR = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Factory New&#8221;: 1.5,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Minimal Wear&#8221;: 1.3,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Field-Tested&#8221;: 1.0,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Well-Worn&#8221;: 0.8,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Battle-Scarred&#8221;: 0.6<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>ITEMS = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;AK-47&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skins&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Redline&#8221;: {&#8220;rarity&#8221;: &#8220;Rare&#8221;, &#8220;base_price&#8221;: 120},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Vulcan&#8221;: {&#8220;rarity&#8221;: &#8220;Epic&#8221;, &#8220;base_price&#8221;: 300},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Safari Mesh&#8221;: {&#8220;rarity&#8221;: &#8220;Common&#8221;, &#8220;base_price&#8221;: 5}<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;M4A1-S&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skins&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Golden Coil&#8221;: {&#8220;rarity&#8221;: &#8220;Epic&#8221;, &#8220;base_price&#8221;: 250},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Decimator&#8221;: {&#8220;rarity&#8221;: &#8220;Rare&#8221;, &#8220;base_price&#8221;: 110},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Basilisk&#8221;: {&#8220;rarity&#8221;: &#8220;Uncommon&#8221;, &#8220;base_price&#8221;: 25}<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Knife&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skins&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Karambit Fade&#8221;: {&#8220;rarity&#8221;: &#8220;Gold&#8221;, &#8220;base_price&#8221;: 1500},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Karambit Doppler&#8221;: {&#8220;rarity&#8221;: &#8220;Gold&#8221;, &#8220;base_price&#8221;: 2000},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Rust Coat&#8221;: {&#8220;rarity&#8221;: &#8220;Rare&#8221;, &#8220;base_price&#8221;: 200}<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Gloves&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skins&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Crimson Weave&#8221;: {&#8220;rarity&#8221;: &#8220;Epic&#8221;, &#8220;base_price&#8221;: 600},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Pandora&#8217;s Box&#8221;: {&#8220;rarity&#8221;: &#8220;Gold&#8221;, &#8220;base_price&#8221;: 3000},<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Snakebite&#8221;: {&#8220;rarity&#8221;: &#8220;Rare&#8221;, &#8220;base_price&#8221;: 150}<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;OwnerKnife&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skins&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;Dragon Emperor&#8221;: {&#8220;rarity&#8221;: &#8220;Mythic&#8221;, &#8220;base_price&#8221;: 5000}<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>CASES = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Mil-Spec Case&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapons&#8221;: [&#8220;AK-47&#8221;, &#8220;M4A1-S&#8221;],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;roll_speed&#8221;: 0.03,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;owner_only&#8221;: <em>False<\/em>,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;min_level&#8221;: 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Knife Case&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapons&#8221;: [&#8220;Knife&#8221;, &#8220;Gloves&#8221;],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;roll_speed&#8221;: 0.03,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;owner_only&#8221;: <em>False<\/em>,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;min_level&#8221;: 5<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Owner Exclusive Case&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapons&#8221;: [&#8220;OwnerKnife&#8221;],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;roll_speed&#8221;: 0.03,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;owner_only&#8221;: <em>True<\/em>,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;min_level&#8221;: 10<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;Budget Case&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapons&#8221;: [&#8220;AK-47&#8221;, &#8220;M4A1-S&#8221;],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;roll_speed&#8221;: 0.02,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;owner_only&#8221;: <em>False<\/em>,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;min_level&#8221;: 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; },<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8220;High Roller Case&#8221;: {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapons&#8221;: [&#8220;Knife&#8221;, &#8220;Gloves&#8221;, &#8220;OwnerKnife&#8221;],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;roll_speed&#8221;: 0.04,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;owner_only&#8221;: <em>False<\/em>,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;min_level&#8221;: 8<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># PLAYER SYSTEM<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p>INVENTORIES = {} &nbsp;<em># username -&gt; list of items<\/em><\/p>\n\n\n\n<p>PLAYERS = {} &nbsp; &nbsp; &nbsp;<em># username -&gt; {&#8220;money&#8221;: float, &#8220;level&#8221;: int, &#8220;xp&#8221;: int}<\/em><\/p>\n\n\n\n<p><em>def<\/em> get_player(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username not in PLAYERS:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; PLAYERS[username] = {&#8220;money&#8221;: 0.0, &#8220;level&#8221;: 1, &#8220;xp&#8221;: 0}<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> PLAYERS[username]<\/p>\n\n\n\n<p><em>def<\/em> add_xp(username, amount):<\/p>\n\n\n\n<p>&nbsp; &nbsp; player = get_player(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; player[&#8220;xp&#8221;] += amount<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>while<\/em> player[&#8220;xp&#8221;] &gt;= 100:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; player[&#8220;xp&#8221;] -= 100<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; player[&#8220;level&#8221;] += 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;\\n{username} leveled up! Now level {player[&#8216;level&#8217;]}.\\n&#8221;)<\/p>\n\n\n\n<p><em>def<\/em> hud(username, jackpot_chance=<em>None<\/em>):<\/p>\n\n\n\n<p>&nbsp; &nbsp; player = get_player(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; money = player[&#8220;money&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; level = player[&#8220;level&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; xp = player[&#8220;xp&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> jackpot_chance is not <em>None<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;[OWNER] [Money: ${money<em>:.2f<\/em>}] [Level: {level}] [XP: {xp}\/100] [JP Chance: {int(jackpot_chance*100)}%]&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;[OWNER] [Money: ${money<em>:.2f<\/em>}] [Level: {level}] [XP: {xp}\/100]&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;[Money: ${money<em>:.2f<\/em>}] [Level: {level}] [XP: {xp}\/100]&#8221;)<\/p>\n\n\n\n<p><em>def<\/em> show_profile(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; print()<\/p>\n\n\n\n<p>&nbsp; &nbsp; hud(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print()<\/p>\n\n\n\n<p><em>def<\/em> clicker_mode(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(&#8220;\\n=== CLICKER MODE ===&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(&#8220;Press ENTER to click. Type &#8216;exit&#8217; and press ENTER to stop.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>while<\/em> <em>True<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; hud(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; cmd = input()<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> cmd.strip().lower() == &#8220;exit&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nExiting clicker mode.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>break<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; player = get_player(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; gain_money = 1.0<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; gain_xp = 5<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; gain_money = 2.0<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; gain_xp = 8<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; player[&#8220;money&#8221;] += gain_money<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; add_xp(username, gain_xp)<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># CORE ROLL LOGIC<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> roll_rarity():<\/p>\n\n\n\n<p>&nbsp; &nbsp; r = random.random()<\/p>\n\n\n\n<p>&nbsp; &nbsp; cumulative = 0<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> rarity, chance <em>in<\/em> RARITIES.items():<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; cumulative += chance<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> r &lt;= cumulative:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> rarity<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> &#8220;Common&#8221;<\/p>\n\n\n\n<p><em>def<\/em> roll_rarity_for_user(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; rarity = roll_rarity()<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> rarity == &#8220;Common&#8221; and random.random() &lt; 0.2:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rarity = &#8220;Uncommon&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> rarity == &#8220;Uncommon&#8221; and random.random() &lt; 0.15:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rarity = &#8220;Rare&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> rarity == &#8220;Rare&#8221; and random.random() &lt; 0.1:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rarity = &#8220;Epic&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> rarity == &#8220;Epic&#8221; and random.random() &lt; 0.05:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rarity = &#8220;Gold&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> rarity<\/p>\n\n\n\n<p><em>def<\/em> roll_wear():<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> random.choice(list(WEAR.keys()))<\/p>\n\n\n\n<p><em>def<\/em> roll_skin(weapon, rarity):<\/p>\n\n\n\n<p>&nbsp; &nbsp; skins = ITEMS[weapon][&#8220;skins&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; matching = [s <em>for<\/em> s, d <em>in<\/em> skins.items() <em>if<\/em> d[&#8220;rarity&#8221;] == rarity]<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> not matching:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; matching = list(skins.keys())<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> random.choice(matching)<\/p>\n\n\n\n<p><em>def<\/em> calculate_price(weapon, skin, wear):<\/p>\n\n\n\n<p>&nbsp; &nbsp; base = ITEMS[weapon][&#8220;skins&#8221;][skin][&#8220;base_price&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> round(base * WEAR[wear], 2)<\/p>\n\n\n\n<p><em>def<\/em> owner_bonus_roll(username, weapon, rarity):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> weapon not in [&#8220;Knife&#8221;, &#8220;Gloves&#8221;]:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> weapon, rarity<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> random.random() &lt; 0.50:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> &#8220;OwnerKnife&#8221;, &#8220;Mythic&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> random.random() &lt; 0.001:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> &#8220;OwnerKnife&#8221;, &#8220;Mythic&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> weapon, rarity<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># INVENTORY SYSTEM<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> add_to_inventory(username, weapon, skin, wear, price, rarity):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username not in INVENTORIES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; INVENTORIES[username] = []<\/p>\n\n\n\n<p>&nbsp; &nbsp; INVENTORIES[username].append({<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapon&#8221;: weapon,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skin&#8221;: skin,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;wear&#8221;: wear,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;price&#8221;: price,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;rarity&#8221;: rarity<\/p>\n\n\n\n<p>&nbsp; &nbsp; })<\/p>\n\n\n\n<p><em>def<\/em> show_inventory(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; items = INVENTORIES.get(username, [])<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> not items:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nYour inventory is empty.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8220;\\nInventory of {username}:&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> i, item <em>in<\/em> enumerate(items, start=1):<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;{i}. [{item[&#8216;rarity&#8217;]}] {item[&#8216;weapon&#8217;]} | {item[&#8216;skin&#8217;]} ({item[&#8216;wear&#8217;]}) &#8211; ${item[&#8216;price&#8217;]}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print()<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># SCROLLING CASE ANIMATION<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p>last_open_time = 0<\/p>\n\n\n\n<p>COOLDOWN = 1.5 &nbsp;<em># seconds between case opens<\/em><\/p>\n\n\n\n<p><em>def<\/em> can_open_case():<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>global<\/em> last_open_time<\/p>\n\n\n\n<p>&nbsp; &nbsp; now = time.time()<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> now &#8211; last_open_time &lt; COOLDOWN:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; wait = round(COOLDOWN &#8211; (now &#8211; last_open_time), 2)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;Slow down! Wait {wait} seconds.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> <em>False<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; last_open_time = now<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> <em>True<\/em><\/p>\n\n\n\n<p><em>def<\/em> format_item_for_strip(item):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> <em>f<\/em>&#8220;[{item[&#8216;rarity&#8217;]}] {item[&#8216;weapon&#8217;]} | {item[&#8216;skin&#8217;]}&#8221;<\/p>\n\n\n\n<p><em>def<\/em> build_roll_strip(case_name, username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; case = CASES[case_name]<\/p>\n\n\n\n<p>&nbsp; &nbsp; weapons = case[&#8220;weapons&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; rarity = roll_rarity_for_user(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; weapon = random.choice(weapons)<\/p>\n\n\n\n<p>&nbsp; &nbsp; weapon, rarity = owner_bonus_roll(username, weapon, rarity)<\/p>\n\n\n\n<p>&nbsp; &nbsp; skin = roll_skin(weapon, rarity)<\/p>\n\n\n\n<p>&nbsp; &nbsp; wear = roll_wear()<\/p>\n\n\n\n<p>&nbsp; &nbsp; price = calculate_price(weapon, skin, wear)<\/p>\n\n\n\n<p>&nbsp; &nbsp; winning_item = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapon&#8221;: weapon,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;skin&#8221;: skin,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;rarity&#8221;: rarity,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;wear&#8221;: wear,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;price&#8221;: price<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; strip = []<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> _ <em>in<\/em> range(20):<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; r = roll_rarity()<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; w = random.choice(weapons)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; w, r2 = owner_bonus_roll(username, w, r)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; s = roll_skin(w, r2)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; wr = roll_wear()<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; p = calculate_price(w, s, wr)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; strip.append({<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;weapon&#8221;: w,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;skin&#8221;: s,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;rarity&#8221;: r2,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;wear&#8221;: wr,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;price&#8221;: p<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; })<\/p>\n\n\n\n<p>&nbsp; &nbsp; insert_index = random.randint(len(strip) &#8211; 5, len(strip) &#8211; 1)<\/p>\n\n\n\n<p>&nbsp; &nbsp; strip[insert_index] = winning_item<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> strip, winning_item<\/p>\n\n\n\n<p><em>def<\/em> play_scroll_animation(strip):<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(&#8220;\\nRolling case&#8230;\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> item <em>in<\/em> strip:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; line = format_item_for_strip(item)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;| {line} |&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; time.sleep(0.05)<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># OPEN CASE FUNCTION<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> open_case(case_name, username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> case_name not in CASES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid case name.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; player = get_player(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; case = CASES[case_name]<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> player[&#8220;level&#8221;] &lt; case.get(&#8220;min_level&#8221;, 1):<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;You must be at least level {case[&#8216;min_level&#8217;]} to open this case.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> case[&#8220;owner_only&#8221;] and username != OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;You are not allowed to open this case.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> not can_open_case():<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; hud(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; strip, winning_item = build_roll_strip(case_name, username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; play_scroll_animation(strip)<\/p>\n\n\n\n<p>&nbsp; &nbsp; weapon = winning_item[&#8220;weapon&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; skin = winning_item[&#8220;skin&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; rarity = winning_item[&#8220;rarity&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; wear = winning_item[&#8220;wear&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; price = winning_item[&#8220;price&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(&#8220;\\nYou unboxed:&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;Weapon: {weapon}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;Skin: &nbsp; {skin}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;Rarity: {rarity}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;Wear: &nbsp; {wear}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;Value: &nbsp;${price}\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; add_to_inventory(username, weapon, skin, wear, price, rarity)<\/p>\n\n\n\n<p>&nbsp; &nbsp; choice = input(&#8220;Do you want to sell this item for its value? (y\/n): &#8220;).strip().lower()<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> choice == &#8220;y&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; player[&#8220;money&#8221;] += price<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; INVENTORIES[username].pop()<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;Item sold for ${price}. New balance: ${player[&#8216;money&#8217;]<em>:.2f<\/em>}\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Item kept in inventory.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; add_xp(username, 10)<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># JACKPOT SYSTEM (PER-ITEM GAMBLE)<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> compute_jackpot_chance(username, price):<\/p>\n\n\n\n<p>&nbsp; &nbsp; chance = 0.50 &nbsp;<em># base 50\/50<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> price &gt; 500:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; chance += 0.05<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> price &gt; 1500:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; chance += 0.10<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> price &gt; 3000:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; chance += 0.15<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; chance += 0.10<\/p>\n\n\n\n<p>&nbsp; &nbsp; chance -= 0.30 &nbsp;<em># brutal penalty<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; chance = max(0.05, min(chance, 0.90))<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> chance<\/p>\n\n\n\n<p><em>def<\/em> jackpot_gamble(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; items = INVENTORIES.get(username, [])<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> not items:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nYou have no items to gamble.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; show_inventory(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>try<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; idx = int(input(&#8220;Choose an item number to gamble: &#8220;)) &#8211; 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>except<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid input.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> idx &lt; 0 or idx &gt;= len(items):<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid item selection.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; item = items[idx]<\/p>\n\n\n\n<p>&nbsp; &nbsp; price = item[&#8220;price&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; chance = compute_jackpot_chance(username, price)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(&#8220;\\n=== JACKPOT GAMBLE ===&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; hud(username, jackpot_chance=chance)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; hud(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8220;Gambling: [{item[&#8216;rarity&#8217;]}] {item[&#8216;weapon&#8217;]} | {item[&#8216;skin&#8217;]} (${item[&#8216;price&#8217;]})&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; roll = random.random()<\/p>\n\n\n\n<p>&nbsp; &nbsp; time.sleep(0.8)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> roll &lt;= chance:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nYOU WON THE JACKPOT!\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; item[&#8220;price&#8221;] += 500<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;Item value increased by 500. New value: ${item[&#8216;price&#8217;]<em>:.2f<\/em>}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> random.random() &lt; 0.10:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; knife_weapon = &#8220;Knife&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; knife_skin = &#8220;Karambit Fade&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; knife_rarity = &#8220;Gold&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; knife_wear = &#8220;Factory New&#8221;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; knife_price = calculate_price(knife_weapon, knife_skin, knife_wear)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; add_to_inventory(username, knife_weapon, knife_skin, knife_wear, knife_price, knife_rarity)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;Bonus knife awarded: {knife_weapon} | {knife_skin} (${knife_price})&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print()<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nYou lost the jackpot.\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; item[&#8220;price&#8221;] -= 1000<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> item[&#8220;price&#8221;] &lt; 0:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; item[&#8220;price&#8221;] = 0<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;Item value decreased by 1000. New value: ${item[&#8216;price&#8217;]<em>:.2f<\/em>}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> random.random() &lt; 0.05:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; removed = INVENTORIES[username].pop(idx)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;The item was lost completely: {removed[&#8216;weapon&#8217;]} | {removed[&#8216;skin&#8217;]}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print()<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># TRADING SYSTEM (to improve later)<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p>PENDING_TRADES = {}<\/p>\n\n\n\n<p><em>def<\/em> offer_trade(sender, receiver, s_index, r_index):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> sender not in INVENTORIES or receiver not in INVENTORIES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Both players must have inventories.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> s_index &gt;= len(INVENTORIES[sender]) or s_index &lt; 0:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid sender item index.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> r_index &gt;= len(INVENTORIES[receiver]) or r_index &lt; 0:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid receiver item index.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; trade = {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;sender&#8221;: sender,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;receiver&#8221;: receiver,<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;sender_item&#8221;: INVENTORIES[sender][s_index],<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &#8220;receiver_item&#8221;: INVENTORIES[receiver][r_index]<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; PENDING_TRADES[receiver] = trade<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8220;\\n{sender} offered a trade to {receiver}:&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;{sender} gives: &nbsp; {trade[&#8216;sender_item&#8217;][&#8216;weapon&#8217;]} | {trade[&#8216;sender_item&#8217;][&#8216;skin&#8217;]}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8221; &nbsp;{receiver} gives: {trade[&#8216;receiver_item&#8217;][&#8216;weapon&#8217;]} | {trade[&#8216;receiver_item&#8217;][&#8216;skin&#8217;]}\\n&#8221;)<\/p>\n\n\n\n<p><em>def<\/em> accept_trade(receiver):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> receiver not in PENDING_TRADES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;No trade offer to accept.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; trade = PENDING_TRADES.pop(receiver)<\/p>\n\n\n\n<p>&nbsp; &nbsp; sender = trade[&#8220;sender&#8221;]<\/p>\n\n\n\n<p>&nbsp; &nbsp; INVENTORIES[sender].remove(trade[&#8220;sender_item&#8221;])<\/p>\n\n\n\n<p>&nbsp; &nbsp; INVENTORIES[receiver].remove(trade[&#8220;receiver_item&#8221;])<\/p>\n\n\n\n<p>&nbsp; &nbsp; INVENTORIES[sender].append(trade[&#8220;receiver_item&#8221;])<\/p>\n\n\n\n<p>&nbsp; &nbsp; INVENTORIES[receiver].append(trade[&#8220;sender_item&#8221;])<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8220;\\n{receiver} accepted the trade! Items swapped.\\n&#8221;)<\/p>\n\n\n\n<p><em>def<\/em> decline_trade(receiver):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> receiver not in PENDING_TRADES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;No trade offer to decline.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>del<\/em> PENDING_TRADES[receiver]<\/p>\n\n\n\n<p>&nbsp; &nbsp; print(<em>f<\/em>&#8220;\\n{receiver} declined the trade.\\n&#8221;)<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># CASE NAME NORMALIZER<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> normalize_case_name(user_input):<\/p>\n\n\n\n<p>&nbsp; &nbsp; cleaned = user_input.strip().lower().replace(&#8220;-&#8220;, &#8220;&#8221;).replace(&#8221; &#8220;, &#8220;&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> case <em>in<\/em> CASES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; key = case.lower().replace(&#8220;-&#8220;, &#8220;&#8221;).replace(&#8221; &#8220;, &#8220;&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> cleaned in key:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> case<\/p>\n\n\n\n<p>&nbsp; &nbsp; best_match = <em>None<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; best_score = 0<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>for<\/em> case <em>in<\/em> CASES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; key = case.lower().replace(&#8220;-&#8220;, &#8220;&#8221;).replace(&#8221; &#8220;, &#8220;&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; score = sum(1 <em>for<\/em> c <em>in<\/em> cleaned <em>if<\/em> c <em>in<\/em> key)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> score &gt; best_score:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; best_score = score<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; best_match = case<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> best_score &gt;= 3:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;\\nDid you mean: {best_match}?&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>return<\/em> best_match<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>return<\/em> <em>None<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># MAIN MENU<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>def<\/em> main_menu(username):<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>while<\/em> <em>True<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\n===== CS:GO CASE GAME V3 =====&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; hud(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;1. Open Case&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;2. View Inventory&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;3. Jackpot Gamble&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;4. Offer Trade&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;5. Accept Trade&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;6. Decline Trade&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;7. Clicker Mode&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;8. View Profile&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;9. Exit Game&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; choice = input(&#8220;\\nChoose an option: &#8220;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> choice == &#8220;1&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nAvailable Cases:&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>for<\/em> case <em>in<\/em> CASES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;- {case}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case_input = input(&#8220;Enter case name: &#8220;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case_name = normalize_case_name(case_input)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>if<\/em> not case_name:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nInvalid case name. Available cases:&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>for<\/em> case <em>in<\/em> CASES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(<em>f<\/em>&#8220;- {case}&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print()<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; open_case(case_name, username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;2&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; show_inventory(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;3&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jackpot_gamble(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;4&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; receiver = input(&#8220;Enter the username to trade with: &#8220;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; show_inventory(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>try<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s_index = int(input(&#8220;Your item number: &#8220;)) &#8211; 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; show_inventory(receiver)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r_index = int(input(&#8220;Their item number: &#8220;)) &#8211; 1<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offer_trade(username, receiver, s_index, r_index)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>except<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid input.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;5&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; accept_trade(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;6&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decline_trade(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;7&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; clicker_mode(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;8&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; show_profile(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>elif<\/em> choice == &#8220;9&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;\\nExiting game&#8230;\\n&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <em>break<\/em><\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Invalid choice.&#8221;)<\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em># ENTRY POINT<\/em><\/p>\n\n\n\n<p><em># =========================<\/em><\/p>\n\n\n\n<p><em>if<\/em> __name__ == &#8220;__main__&#8221;:<\/p>\n\n\n\n<p>&nbsp; &nbsp; username = input(&#8220;Enter your username: &#8220;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username == OWNER:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Owner privileges enabled.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>else<\/em>:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Standard player mode.&#8221;)<\/p>\n\n\n\n<p>&nbsp; &nbsp; <em>if<\/em> username not in INVENTORIES:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; INVENTORIES[username] = []<\/p>\n\n\n\n<p>&nbsp; &nbsp; get_player(username)<\/p>\n\n\n\n<p>&nbsp; &nbsp; main_menu(username)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PS S:\\CSGO&gt; &amp; &#8220;C:\/Program Files (x86)\/Python313\/python.exe&#8221; s:\/CSGO\/csgo_game.pyEnter your username: LOGANOwner privileges enabled. ===== CS:GO CASE GAME V3 =====[OWNER] [Money: $0.00] [Level: 1] [XP: 0\/100] all of these work and i had help from the ai but i still understood most of it import random import time # ========================= # CONFIGURATION # ========================= OWNER = &#8220;LOGAN&#8221; &nbsp;# Only ALL-CAPS LOGAN is the owner # Harsher base rarities RARITIES = { &nbsp; &nbsp; &#8220;Common&#8221;: 0.80, &nbsp; &nbsp; &#8220;Uncommon&#8221;: 0.15, &nbsp; &nbsp; &#8220;Rare&#8221;: 0.04, &nbsp; &nbsp; &#8220;Epic&#8221;: 0.009, &nbsp; &nbsp; &#8220;Gold&#8221;: 0.001 } WEAR = { &nbsp; &nbsp; &#8220;Factory New&#8221;: 1.5, &nbsp; &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-148","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/comments?post=148"}],"version-history":[{"count":1,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":149,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/posts\/148\/revisions\/149"}],"wp:attachment":[{"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/media?parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/categories?post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theroyalscode.com\/students\/l_lazar\/wp-json\/wp\/v2\/tags?post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}