불화 게임 만들기 파트 2

6933 단어
미안해, 나는 지난 달에 내가 가장 좋아하는 이모를 잃었어 😞 그녀의 영혼이 계속해서 평화롭게 쉬기를. 아멘 🙏🏽. 그래서 그냥 애도하는 시간을 가졌습니다. 나는 매일 그녀를 그리워하지만 지금은 훨씬 나아졌습니다.

그래서 오늘 우리는 디스코드 봇 게임 경제 게임을 시작하지만 저는 그것을 "경제 게임"이라고 부르기로 선택합니다.

이제 중요한 라이브러리를 가져와 시작합니다.

from gevent import monkey
import os
import random
import json
import discord
from automate import automate
from discord.ext import commands
intents = discord.Intents.all()
intents.members = True


Json 파일 열기 이 JSON 파일은 은행 계좌 정보를 위한 것입니다.

# open json file
f = open('bank.json')


봇 접두사 이것은 ($balance to create an account)와 같은 봇 구문에 도움이 됩니다.

client = commands.Bot(command_prefix="$", intents=intents)


게임 서버 시작

@client.event
async def on_ready():
    print('NFT Monopoly Ready!')


계정 생성 Discord 사용자가 개인 은행 계좌를 생성하려면 코드가 필요합니다.

# Account function
async def open_account(user):
    users = await get_bank_data()

    if str(user.id) in users:
        return False
    else:
        users[str(user.id)] = {}
        users[str(user.id)]["NFT Wallet"] = 0
        users[str(user.id)]["Bank"] = 0

    with open("bank.json", "w") as f:
        json.dump(users, f)
    return True


은행 세부 정보 가져오기 은행 업데이트를 가져오는 코드입니다.

async def get_bank_data():
    with open("bank.json", "r") as f:
        users = json.load(f)
    return users


은행 세부 정보 업데이트 이 코드는 Discord 플레이어가 은행 세부 정보를 업데이트하는 데 도움이 됩니다.

async def update_bank(user, change=0, mode="NFT Wallet"):
    users = await get_bank_data()

    change = int(change)
    users[str(user.id)][mode] += change

    with open("bank.json", "w") as f:
        json.dump(users, f)

    balance = [users[str(user.id)]["NFT Wallet"], users[str(user.id)]["Bank"]]
    return balance


게임 균형 구문 - $balance

# Game balance
@client.command()
async def balance(ctx):
    await open_account(ctx.author)

    user = ctx.author
    users = await get_bank_data()

    wallet_amount = users[str(user.id)]["NFT Wallet"]
    bank_amount = users[str(user.id)]["Bank"]
    em = discord.Embed(title=f"{ctx.author.name}'s balance",
                       color=discord.Color.red())
    em.add_field(name="NFT Wallet Balance", value=wallet_amount)
    em.add_field(name="Bank Balance", value=bank_amount)
    await ctx.send(embed=em)


인출 코드 구문 - $withdraw

# Withdraw coin
@client.command()
async def withdraw(ctx, amount=None):
    await open_account(ctx.author)

    if amount == None:
        await ctx.send("Please enter the amount")
        return

    balance = await update_bank(ctx.author)

    amount = int(amount)
    if amount > balance[1]:
        await ctx.send("You don't have that much money!")
        return

    if amount < 0:
        await ctx.send("Amount must be positive!")
        return

    await update_bank(ctx.author, amount)
    await update_bank(ctx.author, -1 * amount, "Bank")

    await ctx.send(f"You withdrew {amount} coins!")


입금 코드 구문 - $deposit

# Deposit coin
@client.command()
async def deposit(ctx, amount=None):
    await open_account(ctx.author)

    if amount == None:
        await ctx.send("Please enter the amount")
        return

    balance = await update_bank(ctx.author)

    amount = int(amount)
    if amount > balance[0]:
        await ctx.send("You don't have that much money!")
        return

    if amount < 0:
        await ctx.send("Amount must be positive!")
        return

    await update_bank(ctx.author, -1 * amount)
    await update_bank(ctx.author, amount, "Bank")

    await ctx.send(f"You deposited {amount} coins!")


다른 플레이어에게 코인 보내기 코드 구문 - $send

# Send coin
@client.command()
async def send(ctx, member: discord.Member, amount=None):
    await open_account(ctx.author)
    await open_account(member)

    if amount == None:
        await ctx.send("Please enter the amount")
        return

    balance = await update_bank(ctx.author)
    if amount == "all":
        amount = balance[0]

    amount = int(amount)
    if amount > balance[1]:
        await ctx.send("You don't have that much money!")
        return

    if amount < 0:
        await ctx.send("Amount must be positive!")
        return

    await update_bank(ctx.author, -1 * amount, "Bank")
    await update_bank(member, amount, "Bank")

    await ctx.send(f"You gave {member} {amount} coins!")


플레이어가 일하고 돈을 벌기 위한 코드 구문 - $work

# Work
@client.command()
async def work(ctx):
    await open_account(ctx.author)

    user = ctx.author
    users = await get_bank_data()

    earnings = random.randrange(100)
    work = 'Scientist', 'Bouncer', 'a Designer', 'a Musician', 'a' 'an Analyst'
    career = random.choice(work)

    await ctx.send(f"You Worked as {career} and earned  {earnings} coins!!!")

    users[str(user.id)]["NFT Wallet"] += earnings

    with open("bank.json", "w") as f:
        json.dump(users, f)


플레이어가 코인을 위해 도박을 하는 코드 구문 - $slots

@client.command()
async def slots(ctx, amount=None):
    await open_account(ctx.author)

    if amount == None:
        await ctx.send("Please enter the amount")
        return

    balance = await update_bank(ctx.author)

    amount = int(amount)
    if amount > balance[0]:
        await ctx.send("You don't have that much money!")
        return

    if amount < 0:
        await ctx.send("Amount must be positive!")
        return

    final = []
    for i in range(3):
        a = random.choice(["X", "0", "Q"])

        final.append(a)
    await ctx.send(str(final))

    if final[0] == final[1] or final[0] == final[2] or final[2] == final[1]:
        await update_bank(ctx.author, 2 * amount)
        await ctx.send("You won!!!")
    else:
        await update_bank(ctx.author, -1 * amount)
        await ctx.send("You lost!!!")


3부에서는 봇 게임 상점, 쇼핑백, 구매 및 판매를 구축합니다.

좋은 웹페이지 즐겨찾기