問題タブ [steambot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 「git submodule init」の実行方法とプログラムの「ビルド」方法
プロジェクトにSteamBotを含めたいのですが、最初のステップであるセットアップ ステップですでに困惑しています。
SteamBot の README から:
ステップ 0:このリポジトリを最近クローンしたばかりの場合は、いくつかの作業を行う必要があります。
git submodule init
サブモジュール構成ファイルを初期化するために実行します。- 実行
git submodule update
して、含まれているサブモジュール (つまり、SteamKit2) の最新バージョンを取得します。- プログラムをビルドします。SteamKit2 は LGPL の下でライセンスされており、SteamBot は MIT ライセンスの下でリリースする必要があるため、SteamKit2 のコードを SteamBot に含めることはできません。これには実行可能ファイルが含まれます。GitHub でダウンロードできるようにする予定です。
- いつものように進みます。
「複製」とは、単に Web サイトの「Windows で複製」ボタンをクリックすることを意味すると思いますよね? git submodule init
しかし、「実行する」方法や「プログラムをビルドする」方法がわかりません。どなたか具体的に何をすればいいのか教えていただけると助かります。
c# - 辞書スレッドラムダ追加
スレッドボットの状況を管理しようとしています。後でアクセスするために辞書に追加したいのですが(シャットダウン、一時停止、変数の受け渡し)null
、ボットが起動した後でも常に取得します(null
変数はtemp_bot
)。
c# - プログラムを一時停止したり中断したりせずにマルチスレッドでc#をreadlineするにはどうすればよいですか?
プログラムがループしており、プログラムを中断したり一時停止したりせずに、リアルタイムの人間との対話を可能にしたいと考えています。
すでに実行中のプログラムのコマンドとして入力を使用できるようにしたいと思います。
基本的に、適切に説明しなかった場合:
-main プログラムはフォアグラウンドで実行されます。
-バックグラウンドで実行される入力を探す二次無限ループ
- 入力時にリターン キー (ReadLine) を押すと、文字列が保存され、別の関数 (Interpreter() など) に送信されます。
-返された入力 (単純なループ) を読み取るようにすべての設定が既に完了していますが、いつでもユーザー入力を許可する方法を理解できません。
編集: スタック オーバーフローは通常、コード内のエラーを解決するためのものであることは知っていますが、それは単純であるべきだとわかっています。どこから始めればよいかわかりません。
編集2:
c# - 型 ' ' にはコンストラクターが定義されていません C#
別の cs ファイルからメソッドを呼び出そうとしています。メソッドが存在するクラスの新しいインスタンスを作成しましたが、次のエラーが発生します。
タイプ 'SteamKit2.SteamFriends' にはコンストラクターが定義されていません
なぜこれが起こっているのかを理解するのを手伝ってくれる人はいますか?
このメソッドを呼び出そうとしているクラスは次のとおりです
参照するクラスは次のとおりです(別のcsファイルで)
python - スチームキットはどのように機能しますか?
現在、Steam ゲームのトレーディング システムを実装したいと考えています (Python を使用)。
それで、私はgithubを検索しましたが、悲しいことに、しかありません
https://github.com/Jessecar96/SteamBot
https://github.com/Jessecar96/SteamKit2
ええ、彼らはうまくいきます。しかし、それらは C# です。Python ではこれができないとは言わないでください :)。
それでは、スチームキットの部分から始めたいと思います。難しいことではないと思いましたが(おそらくいくつかのWeb API)、SteamKit2のコードを確認すると、TcpConnectionを使用してSteam Networkに接続しているようで、プロトコルを取得する方法がわかりません。
誰かがこれについて何か考えを持っていますか、私はpython load steamkit2.dllを使用することを考えていますが、私はC#で本当に初心者です
json - json アイテムの検索
したがって、defindex を使用して json ファイル内のアイテムを検索し、アイテム名を返そうとしていますが、エラーが発生します。検索しましたが、関連するものは何もありませんでした。
エラー 2 非静的フィールド、メソッド、またはプロパティ 'schemaexample.schema.Items.get' にはオブジェクト参照が必要です
参考にしたいそうです。アイテムを簡単に検索するにはどうすればよいですか?
ここに私の完全なコードがあります:
あなたがそれを必要とするなら、私が読んでいるjsonはここにあります: http://www50.zippyshare.com/v/13310944/file.html
c# - ボットに特定のイベントを待機させ、同時にイベントのポーリングを続行させるにはどうすればよいですか?
SteamBotアプリケーションを使用しています。
特定のイベントが発生したときに動作するはずのコマンドがあります。この特定のケースでは、私が管理者としてコマンドを発行すると、ボットは取引リクエストを待ってから、ロジックを続行します。私が理解できないのは、取引要求が発生するまで待機させてから続行する方法です。
コマンドを発行し、そのコマンドの動作を処理する関数にいるとします。これは、私がやろうとしていることの非常に簡単な例です。
セクションでは// Wait here
、取引が開始されるまでボットを停止させたいと考えています。次に、開始すると、処理を続行して、期待どおりに項目を追加できます。
関数に設定されているinTrade
(に初期化されたfalse
)変数を追加し、それが真になるまでボットをスリープ状態にしようとしました。true
OnTradeInit
ただし、これによりメインスレッドがブロックされ、タイトなループに陥ります。ウェイクアップすると、すぐに変数が有効かどうかを確認し、true
そうでない場合はスリープ状態に戻します。ボットがスリープ中にイベントを受信したとしても、HandleSteamMessage
関数が何かを処理する時間はありません。Bot.cs
を使用しようとしましたEventWaitHandle
が、決して起動しないようです。
これにより、( で渡されたタイムアウトによりWaitOne
) メイン スレッドが 30 秒間一時停止され、その後、期待どおりに続行されます。ただし、inTrade
トレード リクエストが受信された場合でも、まだ false です。その時点で私は取引をしていないため、その後のコードは無効になります。
では、この種のやり取りを処理する適切な方法は何でしょうか?
これを/r/steambotサブレディットにも相互投稿しました。特に、Github のコメントの一部で、より良い支援のためにここに投稿することが言及されているため、これが問題ではないことを願っています。
c# - Newtonsoft.Json を使用して .JSON ファイルから価格 (値) の保存と読み込みを追加する
現在、SteamBot を自分用に編集およびセットアップしています。ここにソースコードがあります: https://github.com/Jessecar96/SteamBot
私はすでに独自の UserHandle を作成しましたが、settings_prices.json ファイルからアイテムの価格をロード (および保存) したい (今のところ、価格のみを記憶しています) .exe ファイルを再起動するまで)。
販売キー(ゲーム内アイテム)などの価格変更コマンド(ボットとのスチームチャット経由)
しかし、次のような settings_prices.json ファイルからこれらの価格を保存してロードする必要があります。
c# - SteamBot で複数のアイテムを数える方法
Jassecar の SteamBot で、defindex が異なるアイテムをカウントして合計する方法はありますか? 私はこれを試しました:
しかし、それは 1 スクラップ (5000 のアイテム Defindex) と 1 つの精錬された金属 (5002 のアイテム Defindex) を両方とも 9 としてカウントし、10 しか追加しなかったところに合計 18 のスクラップを追加したことをユーザーに伝えます (1 精錬 = 9スクラップ)
c# - 特定のアイテムを見つけて、リスト内にあるアイテムの数を数える方法
これは私の現在のコードです:
Trade.OtherOfferedItems (リスト) に多くのものが含まれているため、totalScrap の量が間違っています。Trade.OtherOfferedItems にあるアイテムの数を乗算するため、アイテムの価値であるスクラップの数を掛けても機能しません (したがって、誰かが Defindex 5000 のアイテムとアイテム Defindex 5002 の 1 つのアイテムを含む 3 つのアイテムを追加した場合、 totalScrap を 28 にしたい)